-
Notifications
You must be signed in to change notification settings - Fork 1
/
ioam_api.proto
53 lines (47 loc) · 1011 Bytes
/
ioam_api.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
syntax = "proto3";
import "google/protobuf/empty.proto";
package ioam_api;
option go_package = "github.com/Advanced-Observability/ioam-api";
/*
* IOAM Service
*/
service IOAMService {
/* Report an IOAM Trace */
rpc Report (IOAMTrace) returns (google.protobuf.Empty) {}
}
/*
* IOAM Trace
*/
message IOAMTrace {
uint32 NamespaceId = 1;
fixed32 BitField = 2;
repeated IOAMNode Nodes = 3;
}
/*
* Opaque State Snapshot
*/
message Opaque {
uint32 SchemaId = 1;
bytes Data = 2; // variable length field
}
/*
* IOAM Node Data
*/
message IOAMNode {
uint32 HopLimit = 1;
uint32 Id = 2;
uint32 IngressId = 3;
uint32 EgressId = 4;
uint32 TimestampSecs = 5;
uint32 TimestampFrac = 6;
uint32 TransitDelay = 7;
uint32 QueueDepth = 8;
uint32 CsumComp = 9;
uint32 BufferOccupancy = 10;
uint32 IngressIdWide = 11;
uint32 EgressIdWide = 12;
uint64 IdWide = 13;
bytes NamespaceData = 14; // 4-octet field
bytes NamespaceDataWide = 15; // 8-octet field
Opaque OSS = 16;
}