Changes between Version 1 and Version 2 of General/3aProtocol
- Timestamp:
- Feb 19, 2019, 12:05:15 AM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
General/3aProtocol
v1 v2 1 1 = OML Measurement Stream Protocol (OMSP) = 2 3 [[TOC(heading=General Documentation, General/*, depth=1)]] 2 4 3 5 The OML Measurement Stream Protocol is used to describe and transport measurement tuples between Injection Points and Processing/Collection Points. All data injected in a Measurement Point (MP) (with omlc_inject) is timestamped and sent to the destination as a Measurement Stream (MS). … … 104 106 || 0 || 1 || 2 || 3 || 105 107 || 0 1 2 3 4 5 6 7 || 8 9 0 1 2 3 4 5 || 6 7 8 9 0 1 2 3 || 4 5 6 7 8 9 0 1 || 106 --+---------------+---------------+---------------+---------------+ 107 |STRING_T|BLOB_T| n | 1st byte | | 108 --+---------------+---------------+---------------+---------------+ 109 | | ... | | 110 +---------------+---------------+---------------+---------------+ 111 | ... | nth byte | 112 +---------------+---------------+---------------+-- 108 || STRING_T|BLOB_T || n || 1st byte || || 109 || || ... || || 110 || || ... || nth byte || 113 111 Boolean values are only encoded as one byte, with a different type depending on there truth value (BOOL_FALSE_T or BOOL_TRUE_T). They were introduced with OMSPv4. 114 112 115 --+---------------+-- 116 | BOOL_xxx_T | 117 --+---------------+-- 113 || 0 || 114 || 0 1 2 3 4 5 6 7 || 115 || BOOL_xxx_T || 116 118 117 Vectors (VECTOR_T) are represented by specifying the type of the vector elements and then the size of the vector (a sixteen bit unsigned integer in network byte order) and followed by the vector of values themselves. Vectors were introduced in OMSPv5. 119 118 120 119 The vector elements are marshalled depending on the their type. For vectors of integers of INT32_T or (U)INT32_T the elements are packed in network-byte order as shown below: 121 120 122 --+---------------+-----------------+---------------+---------------+ 123 | VECTOR_T | (U)INT32_T | n-H | n-L | 124 --+---------------+-----------------+---------------+---------------+ 125 |int[0]-byte-HH |int[0]-byte-HL |int[0]-byte-LH |int[0]-byte-LL | 126 +---------------+-----------------+---------------+---------------+-- 127 |int[1]-byte-HH |int[1]-byte-HL |int[1]-byte-LH |int[1]-byte-LL | 128 +---------------+-----------------+---------------+---------------+-- 121 || 0 || 1 || 2 || 3 || 122 || 0 1 2 3 4 5 6 7 || 8 9 0 1 2 3 4 5 || 6 7 8 9 0 1 2 3 || 4 5 6 7 8 9 0 1 || 123 || VECTOR_T || (U)INT32_T || n-H || n-L || 124 || int[0]-byte-HH || int[0]-byte-HL || int[0]-byte-LH || int[0]-byte-LL || 125 || int[1]-byte-HH || int[1]-byte-HL || int[1]-byte-LH || int[1]-byte-LL || 126 129 127 Similarly for the INT64_T and UINT64_T the elements are packed in network byte order (i.e., with the most significant octet first). 130 128 131 129 For vectors of boolean values the vector elements are represented by a one-octet values which must be either BOOL_TRUE_T or BOOL_FALSE_T. 132 130 133 --+---------------+-----------------+---------------+---------------+ 134 | VECTOR_T | BOOL_T | n-H | n-L | 135 --+---------------+-----------------+---------------+---------------+ 136 | bool[0] | bool[1] | bool[2] | bool[3] | 137 +---------------+-----------------+---------------+---------------+ 138 | bool[4] | 139 +---------------+-- 131 || 0 || 1 || 2 || 3 || 132 || 0 1 2 3 4 5 6 7 || 8 9 0 1 2 3 4 5 || 6 7 8 9 0 1 2 3 || 4 5 6 7 8 9 0 1 || 133 || VECTOR_T || BOOL_T || n-H || n-L || 134 || bool[0] || bool[1] || bool[2] || bool[3] || 135 || bool[4] || || || || 136 140 137 For vectors of double an IEEE 754 binary64 value is transferred and we require that the byte ordering within that value is in network byte order (IEEE 754 does not specify byte ordering but the Wikipedia suggests that it is reasonable to assume that, for a given host, the endian-ness of doubles is the same as for integers). 141 138 142 --+---------------+-----------------+---------------+---------------+ 143 | VECTOR_T | DOUBLE64_T | n-H | n-L | 144 --+---------------+-----------------+---------------+---------------+ 145 |dbl[0]-MS-byte | dbl[0]-byte-7 | dbl[0]-byte-6 | dbl[0]-byte-5 | 146 +---------------+-----------------+---------------+---------------+-- 147 | dbl[0]-byte-4 | dbl[0]-byte-3 | dbl[0]-byte-2 |dbl[0]-LS-byte | 148 +---------------+-----------------+---------------+---------------+-- 149 See also 150 marshal_init, marshal_header_short, marshal_header_long, marshal_measurements, marshal_values, marshal_finalize 139 || 0 || 1 || 2 || 3 || 140 || 0 1 2 3 4 5 6 7 || 8 9 0 1 2 3 4 5 || 6 7 8 9 0 1 2 3 || 4 5 6 7 8 9 0 1 || 141 || VECTOR_T || DOUBLE64_T || n-H || n-L || 142 || dbl[0]-MS-byte || dbl[0]-byte-7 || dbl[0]-byte-6 || dbl[0]-byte-5 || 143 || dbl[0]-byte-4 || dbl[0]-byte-3 || dbl[0]-byte-2 || dbl[0]-LS-byte || 144 145 See also marshal_init, marshal_header_short, marshal_header_long, marshal_measurements, marshal_values, marshal_finalize 151 146 152 147 == OMSP Schema Specification ==