Library libArts


[ Keywords | Classes | Data | Functions ]

Quick Index

DESCRIPTION



Classes

Arts
ArtsAbstract
ArtsAsMatrix
ArtsAsMatrixAggregator
ArtsAsMatrixData
ArtsAsMatrixEntry
ArtsAsMatrixEntryGreaterBytes
ArtsAsMatrixEntryGreaterPkts
ArtsAsMatrixKeyValue
ArtsAttribute
ArtsBgp4AggregatorAttribute
ArtsBgp4AsPathAttribute
ArtsBgp4AsPathSegment
ArtsBgp4Attribute
ArtsBgp4DPAttribute
ArtsBgp4Prefix
ArtsBgp4RouteEntry
ArtsBgp4RouteTable
ArtsBitString
ArtsHeader
ArtsIpPath
ArtsIpPathData
ArtsIpPathEntry
ArtsNetMatrix
ArtsNetMatrixAggregator
ArtsNetMatrixData
ArtsNetMatrixEntry
ArtsNetMatrixEntryGreaterBytes
ArtsNetMatrixEntryGreaterPkts
ArtsNetMatrixKeyValue
ArtsPackageVersion
ArtsPortChoice
ArtsPortChooser
ArtsPortEntryGreaterBytes
ArtsPortEntryGreaterPkts
ArtsPortMatrix
ArtsPortMatrixAggregator
ArtsPortMatrixData
ArtsPortMatrixEntry
ArtsPortMatrixEntryGreaterBytes
ArtsPortMatrixEntryGreaterPkts
ArtsPortMatrixKeyValue
ArtsPortTable
ArtsPortTableAggregator
ArtsPortTableData
ArtsPortTableEntry
ArtsPrimitive
ArtsProtocolEntryGreaterBytes
ArtsProtocolEntryGreaterPkts
ArtsProtocolTable
ArtsProtocolTableAggregator
ArtsProtocolTableData
ArtsProtocolTableEntry
ArtsSelectedPortTable
ArtsSelectedPortTableData

Back to the top of libArts


Data

typedef struct ArtsBgp4NetworkPrefix_t;
typedef vector<uint32_t>::iterator iterator;
typedef vector<uint32_t>::const_iterator const_iterator;
const uint8_t OidSizeMask = 0x03;
uint8_t _flags;
typedef unsigned char uint8_t;
typedef char int8_t;
typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned int uint32_t;
typedef unsigned long uint32_t;
typedef uint32_t ipv4addr_t;
typedef int int32_t;
typedef long int32_t;
typedef unsigned long long uint64_t;
typedef long long int64_t;

Back to the top of libArts


Global Functions

const uint32_t artsC_ATTR_PAD();
const uint32_t artsC_ATTR_COMMENT();
const uint32_t artsC_ATTR_CREATION();
const uint32_t artsC_ATTR_PERIOD();
const uint32_t artsC_ATTR_HOST();
const uint32_t artsC_ATTR_INTERFACE();
const uint32_t artsC_ATTR_IFINDEX();
const uint8_t artsC_UBIT8();
const uint8_t artsC_UBIT16();
const uint8_t artsC_UBIT32();
const uint8_t artsC_UBIT64();
const uint8_t artsC_BIT8();
const uint8_t artsC_BIT16();
const uint8_t artsC_BIT32();
const uint8_t artsC_BIT64();
const uint8_t artsC_STRING8();
const uint8_t artsC_CHAR8();
const uint8_t artsC_IPV4_ADDRESS();
const uint8_t artsC_UNIX_DATE();
const uint8_t artsC_UNIX_DATE_RANGE();
const uint8_t artsC_FLOAT32();
const ArtsPortMatrixData
ArtsPortMatrixEntry
ArtsPortMatrixEntryGreaterBytes
ArtsPortMatrixEntryGreaterPkts
ArtsPortMatrixKeyValue
ArtsPortTable
ArtsPortTableAggregator

Data

typedef long int32_t;
typedef unsigned long long u int64_t;
typedef long long int64_t;

Back to the top of libArts


Global Functions

const uint32_t artsC_ATTR_PAD();
const uint32_t artsC_ATTR_COMMENT();
const uint32_t artsC_ATTR_CREATION();
const uint32_t artsC_ATTR_PERIOD();
const uint32_t artsC_ATTR_HOST();
const uint32_t artsC_ATTR_INTERFACE();
const uint32_t artsC_ATTR_IFINDEX();
const uint8_t artsC_UBIT8();
const uint8_t artsC_UBIT16();
const uint8_t artsC_UBIT32();
const uint8_t artsC_UBIT64();
const uint8_t artsC_BIT8();
const uint8_t artsC_BIT16();
const uint8_t artsC_BIT32();
const uint8_t artsC_BIT64();
const uint8_t artsC_STRING8();
const uint8_t artsC_CHAR8();
const uint8_t artsC_IPV4_ADDRESS();
const uint8_t artsC_UNIX_DATE();
const uint8_t artsC_DOUBLE64();
const uint16_t Bgp4_Attribute_Origin();
const uint16_t Bgp4_Attribute_AsPath();
const uint16_t Bgp4_Attribute_NextHop();
const uint16_t Bgp4_Attribute_MultiExitDisc();
const uint16_t Bgp4_Attribute_LocalPref();
const uint16_t Bgp4_Attribute_AtomicAggregate();
const uint16_t Bgp4_Attribute_Aggregator();
const uint16_t Bgp4_Attribute_Community();
const uint16_t Bgp4_Attribute_DPA();
const uint16_t Bgp4_Attribute_MPReachNLRI();
const uint16_t Bgp4_Attribute_MPUnreachNLRI();
const uint16_t artsC_MAGIC();
const uint32_t artsC_OBJECT_FILE();
const uint32_t artsC_OBJECT_ERROR();
const uint32_t artsC_OBJECT_NET();
const uint32_t artsC_OBJECT_AS_MATRIX();
const uint32_t artsC_OBJECT_PORT();
const uint32_t artsC_OBJECT_PORT_MATRIX();
const uint32_t artsC_OBJECT_SELECTED_PORT();
const uint32_t artsC_OBJECT_PROTO();
const uint32_t artsC_OBJECT_SNMP();
const uint32_t artsC_OBJECT_SNMP_TOPO();
const uint32_t artsC_OBJECT_U_R_STAT();
const uint32_t artsC_OBJECT_AS_PATH();
const uint32_t artsC_OBJECT_TRANS();
const uint32_t artsC_OBJECT_IP_PATH();
ArtsSnmpOid();
~ArtsSnmpOid();
istream & read(istream& is);
int read(int fd);
ostream & write(ostream& os);
int write(int fd);

Back to the top of libArts


const uint32_t artsC_ATTR_PAD();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Object Attribute Identifiers
---------------------------------------------------------------------------

---------------------------------------------------------------------------
pad attribute
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_PAD();

Back to the top of libArts


const uint32_t artsC_ATTR_COMMENT();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
ASCII comment string attribute
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_COMMENT();

Back to the top of libArts


const uint32_t artsC_ATTR_CREATION();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Creation time attribute
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_CREATION();

Back to the top of libArts


const uint32_t artsC_ATTR_PERIOD();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Time range attribute
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_PERIOD();

Back to the top of libArts


const uint32_t artsC_ATTR_HOST();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Host attribute (an IP address)
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_HOST();

Back to the top of libArts


const uint32_t artsC_ATTR_INTERFACE();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Interface name attribute
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_INTERFACE();

Back to the top of libArts


const uint32_t artsC_ATTR_IFINDEX();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
interface index attribute
---------------------------------------------------------------------------

const uint32_t artsC_ATTR_IFINDEX();

Back to the top of libArts


const uint8_t artsC_UBIT8();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Object Attribute Formats
---------------------------------------------------------------------------

---------------------------------------------------------------------------
Unsigned 8-bit value
---------------------------------------------------------------------------

const uint8_t artsC_UBIT8();

Back to the top of libArts


const uint8_t artsC_UBIT16();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Unsigned 16-bit value
---------------------------------------------------------------------------

const uint8_t artsC_UBIT16();

Back to the top of libArts


const uint8_t artsC_UBIT32();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Unsigned 32-bit value
---------------------------------------------------------------------------

const uint8_t artsC_UBIT32();

Back to the top of libArts


const uint8_t artsC_UBIT64();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Unsigned 64-bit value
---------------------------------------------------------------------------

const uint8_t artsC_UBIT64();

Back to the top of libArts


const uint8_t artsC_BIT8();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Signed 8-bit value
---------------------------------------------------------------------------

const uint8_t artsC_BIT8();

Back to the top of libArts


const uint8_t artsC_BIT16();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Signed 16-bit value
---------------------------------------------------------------------------

const uint8_t artsC_BIT16();

Back to the top of libArts


const uint8_t artsC_BIT32();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Signed 32-bit value
---------------------------------------------------------------------------

const uint8_t artsC_BIT32();

Back to the top of libArts


const uint8_t artsC_BIT64();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Signed 64-bit value
---------------------------------------------------------------------------

const uint8_t artsC_BIT64();

Back to the top of libArts


const uint8_t artsC_STRING8();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Null-terminated 8-bit string
---------------------------------------------------------------------------

const uint8_t artsC_STRING8();

Back to the top of libArts


const uint8_t artsC_CHAR8();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
8-bit character array
---------------------------------------------------------------------------

const uint8_t artsC_CHAR8();

Back to the top of libArts


const uint8_t artsC_IPV4_ADDRESS();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
IP Address
---------------------------------------------------------------------------

const uint8_t artsC_IPV4_ADDRESS();

Back to the top of libArts


const uint8_t artsC_UNIX_DATE();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Unix GMT date value
---------------------------------------------------------------------------

const uint8_t artsC_UNIX_DATE();

Back to the top of libArts


const uint8_t artsC_UNIX_DATE_RANGE();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
Pair of unix GMT date values
---------------------------------------------------------------------------

const uint8_t artsC_UNIX_DATE_RANGE();

Back to the top of libArts


const uint8_t artsC_FLOAT32();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
32-bit floating point (XDR)
---------------------------------------------------------------------------

const uint8_t artsC_FLOAT32();

Back to the top of libArts


const uint8_t artsC_DOUBLE64();

#include "ArtsAttribute.hh"


---------------------------------------------------------------------------
64-bit float (XDR double)
---------------------------------------------------------------------------

const uint8_t artsC_DOUBLE64();

Back to the top of libArts


const uint16_t Bgp4_Attribute_Origin();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
origin (IGP, EGP, incomplete) attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_Origin();

Back to the top of libArts


const uint16_t Bgp4_Attribute_AsPath();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
AS path attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_AsPath();

Back to the top of libArts


const uint16_t Bgp4_Attribute_NextHop();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
next hop attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_NextHop();

Back to the top of libArts


const uint16_t Bgp4_Attribute_MultiExitDisc();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
M.E.D. attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_MultiExitDisc();

Back to the top of libArts


const uint16_t Bgp4_Attribute_LocalPref();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
local preference attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_LocalPref();

Back to the top of libArts


const uint16_t Bgp4_Attribute_AtomicAggregate();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
atomic aggregate attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_AtomicAggregate();

Back to the top of libArts


const uint16_t Bgp4_Attribute_Aggregator();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
aggregator attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_Aggregator();

Back to the top of libArts


const uint16_t Bgp4_Attribute_Community();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
community attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_Community();

Back to the top of libArts


const uint16_t Bgp4_Attribute_DPA();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
DPA attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_DPA();

Back to the top of libArts


const uint16_t Bgp4_Attribute_MPReachNLRI();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
Multiprotocol Reachable attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_MPReachNLRI();

Back to the top of libArts


const uint16_t Bgp4_Attribute_MPUnreachNLRI();

#include "ArtsBgp4Attribute.hh"


---------------------------------------------------------------------------
Multiprotocol Unreachable attribute
---------------------------------------------------------------------------

const uint16_t Bgp4_Attribute_MPUnreachNLRI();

Back to the top of libArts


typedef struct ArtsBgp4NetworkPrefix_t;

#include "ArtsBgp4Prefix.hh"

No documentation available.

typedef struct {
  union {
    ipv4addr_t  ipv4addr;
#ifdef HAVE_IPV6
    ipv6addr_t  ipv6addr;
#endif
  } network;
} ArtsBgp4NetworkPrefix_t;

Back to the top of libArts


DESCRIPTION

This is the start of a C++ class library for ARTS objects. It is currently pre-alpha, and only handles the following objects:

- IP path

- AS matrix

- net matrix

- port table

- selected port table

- port matrix

- protocol table

Next on the to-do for objects should be the BGP4 RIB object?

The HTML documentation was generated with a slightly-modified version of cocoon. The input to cocoon is the class header files... hence the definitive reference documentation is the class header files themselves.

Class Requirements

Adding to the Arts class heirarchy involves adding a new type of data object. Inside the Arts class, the _data struct contains pointers to the different types of data objects that may be contained. An Arts object contains only one of these, so _data is actually used as a discriminate union, where the discriminator is Arts.Header().Identifier() (the type of the data). You need to add a pointer to your new data type in the _data struct in the Arts class, and add a new unique data identifier in ArtsHeader.hh (for example, artsC_OBJECT_PORT_MATRIX).

Your data class (which we'll refer to as YourDataType) is required to implement the following members:

uint32_t Length(uint8_t version) const;

istream & read(istream& is, uint8_t version);

int read(int fd, uint8_t version);

ostream & write(ostream& os, uint8_t version);

int write(int fd, uint8_t version);

friend ostream & operator << (ostream & os, const YourDataType & yourData);

After doing this, you need to modify Arts.cc to handle your new data. This generally involves adding a new case to various switch statements.

You may also provide convenience classes that inherit from the Arts class but have a data-specific constructor and some convenient members for accessing the data. Examples of these are ArtsAsMatrix, ArtsNetMatrix, et. al.

Back to the top of libArts


const uint16_t artsC_MAGIC();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
ARTS file magic number
---------------------------------------------------------------------------

const uint16_t artsC_MAGIC();

Back to the top of libArts


const uint32_t artsC_OBJECT_FILE();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
File Information Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_FILE();

Back to the top of libArts


const uint32_t artsC_OBJECT_ERROR();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Error Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_ERROR();

Back to the top of libArts


const uint32_t artsC_OBJECT_NET();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Net Matrix Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_NET();

Back to the top of libArts


const uint32_t artsC_OBJECT_AS_MATRIX();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
AS Matrix Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_AS_MATRIX();

Back to the top of libArts


const uint32_t artsC_OBJECT_PORT();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Port Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_PORT();

Back to the top of libArts


const uint32_t artsC_OBJECT_PORT_MATRIX();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Port Matrix Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_PORT_MATRIX();

Back to the top of libArts


const uint32_t artsC_OBJECT_SELECTED_PORT();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Selected Port Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_SELECTED_PORT();

Back to the top of libArts


const uint32_t artsC_OBJECT_PROTO();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Protocols Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_PROTO();

Back to the top of libArts


const uint32_t artsC_OBJECT_SNMP();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
SNMP Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_SNMP();

Back to the top of libArts


const uint32_t artsC_OBJECT_SNMP_TOPO();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
SNMP Topology Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_SNMP_TOPO();

Back to the top of libArts


const uint32_t artsC_OBJECT_U_R_STAT();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
Usage Reporting Statistical Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_U_R_STAT();

Back to the top of libArts


const uint32_t artsC_OBJECT_AS_PATH();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
AS Path Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_AS_PATH();

Back to the top of libArts


const uint32_t artsC_OBJECT_TRANS();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
rtdata Transaction Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_TRANS();

Back to the top of libArts


const uint32_t artsC_OBJECT_IP_PATH();

#include "ArtsHeader.hh"


---------------------------------------------------------------------------
IP Path Object
---------------------------------------------------------------------------

const uint32_t artsC_OBJECT_IP_PATH();

Back to the top of libArts


typedef vector<uint32_t>::iterator iterator;

#include "ArtsSnmpOid.hh"

No documentation available.

  typedef vector<uint32_t>::iterator        iterator;

Back to the top of libArts


typedef vector<uint32_t>::const_iterator const_iterator;

#include "ArtsSnmpOid.hh"

No documentation available.

  typedef vector<uint32_t>::const_iterator  const_iterator;

Back to the top of libArts


const uint8_t OidSizeMask = 0x03;

#include "ArtsSnmpOid.hh"

No documentation available.

  const uint8_t  OidSizeMask = 0x03;  // 00 = 1, 01 = 2, 11 = 4

Back to the top of libArts


ArtsSnmpOid();

#include "ArtsSnmpOid.hh"

No documentation available.

  ArtsSnmpOid();

Back to the top of libArts


~ArtsSnmpOid();

#include "ArtsSnmpOid.hh"

No documentation available.

  ~ArtsSnmpOid();

Back to the top of libArts


istream & read(istream& is);

#include "ArtsSnmpOid.hh"

No documentation available.

  istream & read(istream& is);

Back to the top of libArts


int read(int fd);

#include "ArtsSnmpOid.hh"

No documentation available.

  int read(int fd);

Back to the top of libArts


ostream & write(ostream& os);

#include "ArtsSnmpOid.hh"

No documentation available.

  ostream & write(ostream& os);

Back to the top of libArts


int write(int fd);

#include "ArtsSnmpOid.hh"

No documentation available.

  int write(int fd);

Back to the top of libArts


uint8_t _flags;

#include "ArtsSnmpOid.hh"

No documentation available.

  uint8_t  _flags;

Back to the top of libArts


typedef unsigned char uint8_t;

#include "caida_t.h"

No documentation available.

  typedef unsigned char   uint8_t;

Back to the top of libArts


typedef char int8_t;

#include "caida_t.h"

No documentation available.

  typedef char            int8_t;

Back to the top of libArts


typedef unsigned short uint16_t;

#include "caida_t.h"

No documentation available.

    typedef unsigned short  uint16_t;

Back to the top of libArts


typedef short int16_t;

#include "caida_t.h"

No documentation available.

    typedef short           int16_t;

Back to the top of libArts


typedef unsigned int uint32_t;

#include "caida_t.h"

No documentation available.

    typedef unsigned int    uint32_t;

Back to the top of libArts


typedef unsigned long uint32_t;

#include "caida_t.h"

No documentation available.

    typedef unsigned long   uint32_t;

Back to the top of libArts


typedef uint32_t ipv4addr_t;

#include "caida_t.h"

No documentation available.

typedef uint32_t  ipv4addr_t;

Back to the top of libArts


typedef int int32_t;

#include "caida_t.h"

No documentation available.

    typedef int             int32_t;

Back to the top of libArts


typedef long int32_t;

#include "caida_t.h"

No documentation available.

    typedef long            int32_t;

Back to the top of libArts


typedef unsigned long long uint64_t;

#include "caida_t.h"

No documentation available.

    typedef unsigned long long  uint64_t;

Back to the top of libArts


typedef long long int64_t;

#include "caida_t.h"

No documentation available.

    typedef long long       int64_t;

Back to the top of libArts