The Assimilation Project
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Individual TLV 'Frame' data types and layouts (by TLV type)

Below is the set of individual frame types and data layouts - organized by TLV type. More...

Collaboration diagram for Individual TLV 'Frame' data types and layouts (by TLV type):

Macros

#define FRAMETYPE_END   0
 FRAMETYPE_END Frame (frametype 0) Frame subclass - Frame class. More...
 
#define FRAMETYPE_SIG   1
 FRAMETYPE_SIG Frame (frametype 1) Frame subclass - SignFrame class. More...
 
#define FRAMETYPE_CRYPT   2
 FRAMETYPE_CRYPT Frame (frametype 2) Frame subclass - CryptFrame class. More...
 
#define FRAMETYPE_COMPRESS   3
 FRAMETYPE_COMPRESS Frame (frametype 3) Frame subclass - CompressFrame class. More...
 
#define FRAMETYPE_REQID   4
 FRAMETYPE_REQID Frame (frametype 4) Frame subclass - SeqnoFrame class. More...
 
#define FRAMETYPE_PKTDATA   6
 FRAMETYPE_PKTDATA Frame (frametype 6) Frame subclass - Frame class. More...
 
#define FRAMETYPE_WALLCLOCK   7
 FRAMETYPE_WALLCLOCK Frame (frametype 7) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_INTERFACE   8
 FRAMETYPE_INTERFACE Frame (frametype 8) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_HOSTNAME   9
 FRAMETYPE_HOSTNAME Frame (frametype 9) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_IPADDR   10
 FRAMETYPE_IPADDR Frame (frametype 10) Frame subclass - AddrFrame class. More...
 
#define FRAMETYPE_MACADDR   11
 FRAMETYPE_MACADDR Frame (frametype 11) Frame subclass - AddrFrame class. More...
 
#define FRAMETYPE_PORTNUM   12
 FRAMETYPE_PORTNUM Frame (frametype 12) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_IPPORT   13
 FRAMETYPE_IPPORT Frame (frametype 13) Frame subclass - IpPortFrame class. More...
 
#define FRAMETYPE_HBINTERVAL   14
 FRAMETYPE_HBINTERVAL Frame (frametype 14) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_HBDEADTIME   15
 FRAMETYPE_HBDEADTIME Frame (frametype 15) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_HBWARNTIME   16
 FRAMETYPE_HBWARNTIME Frame (frametype 16) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_PATHNAME   17
 FRAMETYPE_PATHNAME Frame (frametype 17) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_JSDISCOVER   19
 FRAMETYPE_JSDISCOVER Frame (frametype 19) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_CONFIGJSON   20
 FRAMETYPE_CONFIGJSON Frame (frametype 20) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_CSTRINGVAL   21
 FRAMETYPE_CSTRINGVAL Frame (frametype 21) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_CINTVAL   22
 FRAMETYPE_CINTVAL Frame (frametype 22) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_ELAPSEDTIME   23
 FRAMETYPE_ELAPSEDTIME Frame (frametype 23) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_DISCNAME   24
 FRAMETYPE_DISCNAME Frame (frametype 24) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_DISCINTERVAL   25
 FRAMETYPE_DISCINTERVAL Frame (frametype 25) Frame subclass - IntFrame class. More...
 
#define FRAMETYPE_DISCJSON   26
 FRAMETYPE_DISCJSON Frame (frametype 26) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_RSCJSON   27
 FRAMETYPE_RSCJSON Frame (frametype 27) Frame subclass - CstringFrame class. More...
 
#define FRAMETYPE_RSCJSONREPLY   28
 FRAMETYPE_RSCJSONREPLY Frame (frametype 28) Frame subclass - CstringFrame class. More...
 

Detailed Description

Below is the set of individual frame types and data layouts - organized by TLV type.

Note that a given Frame class subclass can appear be associated with many different TLV types. This file organizes this data by the TLV type, not by the underlying Frame class subclass.

Macro Definition Documentation

#define FRAMETYPE_CINTVAL   22

FRAMETYPE_CINTVAL Frame (frametype 22) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 22 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

Miscellaneous integer value.Generic integer value: IntFrame class

Definition at line 336 of file frametypes.h.

Referenced by main(), and obey_pingpong().

#define FRAMETYPE_COMPRESS   3

FRAMETYPE_COMPRESS Frame (frametype 3) Frame subclass - CompressFrame class.

+----------------+-----------+------------------------+
| frametype =  3 | f_length  | compressed frames      |
|   (16 bits)    | (24-bits) |    (f_length bytes)    |
+----------------+-----------+------------------------+

If a compression frame is present (frametype = 3) it must be the second or third frame in the frameset, and can only be preceded by a FRAMETYPE_SIG and FRAMETYPE_CRYPT frames. When this frame is present, then all the frames following are compreseed according information in the compression information value segment. The format of the compression information value segment will likely be a single integer saying which compression method was used.Compression frame: CompressFrame class

Definition at line 116 of file frametypes.h.

Referenced by frameset_construct_packet().

#define FRAMETYPE_CONFIGJSON   20

FRAMETYPE_CONFIGJSON Frame (frametype 20) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 20 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame provides the JSON for initial configuration data as a NUL-terminated C-style string.JSON configuration data from CMA: CstringFrame class

Definition at line 313 of file frametypes.h.

Referenced by create_setconfig(), and nanoobey_setconfig().

#define FRAMETYPE_CRYPT   2

FRAMETYPE_CRYPT Frame (frametype 2) Frame subclass - CryptFrame class.

+----------------+-----------+-------------------------+
| frametype =  2 | f_length  | encryption information  |
|   (16 bits)    | (24-bits) |     (f_length bytes)    |
+----------------+-----------+-------------------------+

If an encryption frame is present it must be the second frame in the frameset, and can only be preceded by a FRAMETYPE_SIG frame. It must have frametype 2. When this frame is present, then all the frames following are encrypted according information in the encryption information value segment.Encryption frame: CryptFrame class

Definition at line 98 of file frametypes.h.

Referenced by frameset_construct_packet().

#define FRAMETYPE_CSTRINGVAL   21

FRAMETYPE_CSTRINGVAL Frame (frametype 21) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 21 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

Miscellaneous NUL-terminated C-style string.Generic string value: CstringFrame class

Definition at line 324 of file frametypes.h.

Referenced by nanoobey_change_debug().

#define FRAMETYPE_DISCINTERVAL   25

FRAMETYPE_DISCINTERVAL Frame (frametype 25) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 25 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame is a discovery repeat interval measured in seconds as an IntFrame::Discovery interval: IntFrame class

Definition at line 375 of file frametypes.h.

Referenced by nanoobey_startdiscover().

#define FRAMETYPE_DISCJSON   26

FRAMETYPE_DISCJSON Frame (frametype 26) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 26 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame provides the data describing the discovery action in detail. It must be preceded by a FRAMETYPE_DISCNAME.Discovery JSON string: CstringFrame class

Definition at line 388 of file frametypes.h.

Referenced by nanoobey_startdiscover().

#define FRAMETYPE_DISCNAME   24

FRAMETYPE_DISCNAME Frame (frametype 24) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 24 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame is a name to give this instance of a discovery action.name of this discovery action: CstringFrame class

Definition at line 362 of file frametypes.h.

Referenced by nanoobey_startdiscover(), and nanoobey_stopdiscover().

#define FRAMETYPE_ELAPSEDTIME   23

FRAMETYPE_ELAPSEDTIME Frame (frametype 23) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 23 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame provides elapsed time (measured locally) in microseconds. In spite of the apparent variability permitted, it is an 8-byte (64-bit) integer.64-bit elapsed time (usec): IntFrame class

Definition at line 350 of file frametypes.h.

Referenced by nanoprobe_report_upstream().

#define FRAMETYPE_END   0

FRAMETYPE_END Frame (frametype 0) Frame subclass - Frame class.

+----------------+-----------+------------------+
| frametype =  0 | f_length  |    frame data    |
|   (16 bits)    | (24-bits) | (f_length bytes) |
+----------------+-----------+------------------+

The last frame in a frameset is required to be an End frame. End frames are of type zero and always have length zero. Its corresponding class is Frame class. This is the most basic Frame type, and is the only frame type that permits a length of zero.Final frame in a message: Frame class

Definition at line 63 of file frametypes.h.

Referenced by frameset_construct_packet(), get_generic_tlv_next(), and is_valid_generic_tlv_packet().

#define FRAMETYPE_HBDEADTIME   15

FRAMETYPE_HBDEADTIME Frame (frametype 15) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 15 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame is a heartbeat deadtime measured in seconds.Heartbeat deadtime.: IntFrame class

Definition at line 264 of file frametypes.h.

Referenced by create_sendexpecthb(), and nanoobey_expecthb().

#define FRAMETYPE_HBINTERVAL   14

FRAMETYPE_HBINTERVAL Frame (frametype 14) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 14 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame is a heartbeat sending interval measured in seconds.Heartbeat interval.: IntFrame class

Definition at line 251 of file frametypes.h.

Referenced by create_sendexpecthb(), and nanoobey_sendhb().

#define FRAMETYPE_HBWARNTIME   16

FRAMETYPE_HBWARNTIME Frame (frametype 16) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 16 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame is a heartbeat warning time measured in seconds.Heartbeat warntime.: IntFrame class

Definition at line 277 of file frametypes.h.

Referenced by create_sendexpecthb(), and nanoobey_expecthb().

#define FRAMETYPE_HOSTNAME   9

FRAMETYPE_HOSTNAME Frame (frametype 9) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype =  9 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame provides the name of a host as a NUL-terminated C-style string.Name of host as a C-style string: CstringFrame class

Definition at line 186 of file frametypes.h.

Referenced by construct_pcap_frameset(), nano_reqconfig(), and nanoprobe_report_upstream().

#define FRAMETYPE_INTERFACE   8

FRAMETYPE_INTERFACE Frame (frametype 8) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype =  8 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame provides the name of a network interface as a NUL-terminated C-style string.Name of network interface as a C-style string: CstringFrame class

Definition at line 174 of file frametypes.h.

Referenced by construct_pcap_frameset().

#define FRAMETYPE_IPADDR   10

FRAMETYPE_IPADDR Frame (frametype 10) Frame subclass - AddrFrame class.

+----------------+----------------+---------------+--------------+
| frametype = 10 | f_length = n   | Address Type  |  address     |
|   (16 bits)    |    (24-bits)   |    2 bytes    | (n-2 bytes)  |
+----------------+----------------+---------------+--------------+

IPv4 addresses are address type 1 and are 4 bytes long. IPv6 addresses are address type 2 and are 16 bytes long, and have Address types 1 and 2 respectively.IP address in either IPv4 or IPv6 format.: AddrFrame class

Definition at line 200 of file frametypes.h.

Referenced by address_tests().

#define FRAMETYPE_IPPORT   13

FRAMETYPE_IPPORT Frame (frametype 13) Frame subclass - IpPortFrame class.

+----------------+----------------+-------------+--------------+---------------+
| frametype = 13 | f_length = n   | Port Number | Address Type  |  address     |
|   (16 bits)    |    (24-bits)   |   2 bytes   |    2 bytes    | (n-4 bytes)  |
+----------------+----------------+-------------+--------------+---------------+

This frame is a 16-bit IP port number along with an IPv4 or IPv6 address.IP w/Port.: IpPortFrame class

Definition at line 238 of file frametypes.h.

Referenced by create_sendexpecthb(), nanoobey_expecthb(), nanoobey_sendhb(), nanoobey_stopexpecthb(), nanoobey_stopsendhb(), and nanoprobe_report_upstream().

#define FRAMETYPE_JSDISCOVER   19

FRAMETYPE_JSDISCOVER Frame (frametype 19) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 19 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame contains JSON-formatted output from a discovery process. The type of discovery data and program collecting it are inside.JSON-formatted discovery data: CstringFrame class

Definition at line 302 of file frametypes.h.

Referenced by _jsondiscovery_send(), check_JSON(), and nano_reqconfig().

#define FRAMETYPE_MACADDR   11

FRAMETYPE_MACADDR Frame (frametype 11) Frame subclass - AddrFrame class.

+----------------+----------------+---------------+--------------+
| frametype = 11 | f_length = n   | Address Type  |  address     |
|   (16 bits)    |    (24-bits)   |    2 bytes    | (n-2 bytes)  |
+----------------+----------------+---------------+--------------+

This frame can be either a 6 byte (EUI-48) or an 8 byte (EUI-64) format MAC address. The Address Type for a MAC address is 6.MAC Address.: AddrFrame class

Definition at line 213 of file frametypes.h.

Referenced by address_tests().

#define FRAMETYPE_PATHNAME   17

FRAMETYPE_PATHNAME Frame (frametype 17) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 17 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame contains a pathname for a file as a C string.file name: CstringFrame class

Definition at line 289 of file frametypes.h.

#define FRAMETYPE_PKTDATA   6

FRAMETYPE_PKTDATA Frame (frametype 6) Frame subclass - Frame class.

+----------------+-----------+------------------+
| frametype =  6 | f_length  |    frame data    |
|   (16 bits)    | (24-bits) | (f_length bytes) |
+----------------+-----------+------------------+

This frame format is normally used for a CDP or LLDP packet. The data is kept exactly as it was received from the network interface via libpcap.Encapsulated packet data: Frame class

Definition at line 146 of file frametypes.h.

Referenced by construct_pcap_frameset().

#define FRAMETYPE_PORTNUM   12

FRAMETYPE_PORTNUM Frame (frametype 12) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype = 12 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame is a 16-bit IP port number.Port number.: IntFrame class

Definition at line 226 of file frametypes.h.

#define FRAMETYPE_REQID   4

FRAMETYPE_REQID Frame (frametype 4) Frame subclass - SeqnoFrame class.

+----------------+---------------+-------------+-----------+
| frametype =  4 | f_length = 8  |  reply id   | queue id  |
|   (16 bits)    |   (24-bits)   |  (8 bytes)  | (2 bytes) |
+----------------+---------------+-------------+-----------+

Requests from the central authority are identified by a request id (basically a sequence number) and a queue id. The combination of the two is unique over a relatively long period of time - at least days. Notifications from clients are sent with queue id 0, which will never be used by the central authority.Request ID - a message sequence number.: SeqnoFrame class

Definition at line 132 of file frametypes.h.

Referenced by _frameset_getseqno(), and _fsqueue_enq().

#define FRAMETYPE_RSCJSON   27

FRAMETYPE_RSCJSON Frame (frametype 27) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 27 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame provides the data describing the a resource action or cancel operation in detail.JSON resource string: CstringFrame class

Definition at line 400 of file frametypes.h.

Referenced by fakecma_startup(), nanoobey_cancelrscoperation(), and nanoobey_dorscoperation().

#define FRAMETYPE_RSCJSONREPLY   28

FRAMETYPE_RSCJSONREPLY Frame (frametype 28) Frame subclass - CstringFrame class.

+----------------+----------------+----------------+--------+
| frametype = 28 | f_length = 'n' | interface name |  0x00  |
|   (16 bits)    |    (24-bits)   |   (n-1 bytes)  | 1 byte |
+----------------+----------------+----------------+--------+

This frame provides the data describing the result of a resource action in detail.JSON operation result: CstringFrame class

Definition at line 412 of file frametypes.h.

Referenced by _nano_send_rscexitstatus().

#define FRAMETYPE_SIG   1

FRAMETYPE_SIG Frame (frametype 1) Frame subclass - SignFrame class.

+----------------+-----------+-----------------+------------+-------------------+
|                |           |      major      |            |                   |
| frametype =  1 | f_length  | signature-type  | minor type | digital signature |
|   (16 bits)    | (24-bits) |      (8 bits)   |  (8 bits)  |(f_length-2 bytes) |
+----------------+-----------+-----------------+------------+-------------------+

The signature frame is mandatory and must be the first frame in the frameset - and must have frametype 1. The digital signature computed in the digital signature field is computed on all the bytes in the frameset beginning with the first byte after the end of this frame, extending through and including the last byte of the frameset. Note that this will include the encryption frame if present. The format and length of the digital signature depends on the type of signature.Digital signature frame: SignFrame class

Definition at line 82 of file frametypes.h.

Referenced by frameset_construct_packet(), is_valid_generic_tlv_packet(), and signframe_new().

#define FRAMETYPE_WALLCLOCK   7

FRAMETYPE_WALLCLOCK Frame (frametype 7) Frame subclass - IntFrame class.

+----------------+--------------+-------------------------+
| frametype =  7 | f_length =   |     integer  value      |
|                | 1,2,3,4 or 8 |           value         |
|   (16 bits)    |   (24-bits)  |   (1,2,3,4,or 8 bytes)  |
+----------------+--------------+-------------------------+

This frame provides local time on the sending system as gotten from the g_get_real_time() call - which is a 64-bit time measured in microseconds. In spite of the apparent variability permitted above, it is an 8-byte (64-bit) integer.64-bit local time: IntFrame class

Definition at line 161 of file frametypes.h.

Referenced by construct_pcap_frameset().