Messages
#
Request Service#
Subscription Service#
Common#
Base#
About MessagesThis sections lists all protobuf
messages defined by the services of the Jalapeño API Gateway.
'required', 'optional' & 'repeated'
All properties that are preceded by either the optional or required keyword do not contain the actual value, but rather pointers to those values. This is due to the implementation of proto2.
The reason for this design choice is explained in the section Why use proto2 instead of proto3?.
#
Request MessagesTopologyRequest
#
message TopologyRequest { repeated string keys = 1; repeated string properties = 2;}
TelemetryRequest
#
message TelemetryRequest { repeated InterfaceIdentifier interface_ids = 1; repeated string properties = 2;}
LsNodeResponse
#
message LsNodeResponse { repeated LsNode ls_nodes = 1;}
LsLinkResponse
#
message LsLinkResponse { repeated LsLink ls_links = 1;}
LsPrefixResponse
#
message LsPrefixResponse { repeated LsPrefix ls_prefixes = 1;}
LsSrv6SidResponse
#
message LsSrv6SidResponse { repeated LsSrv6Sid ls_srv6_sids = 1;}
LsNodeEdgeResponse
#
message LsNodeEdgeResponse { repeated LsNodeEdge ls_node_edges = 1;}
TelemetryResponse
#
message TelemetryResponse { repeated TelemetryData telemetry_data = 1;}
TelemetryData
#
message TelemetryData { required InterfaceIdentifier interface_id = 1; optional string ipv4_address = 2; optional int64 data_rate = 3; optional int64 packets_sent = 4; optional int64 packets_received = 5; optional string state = 6; optional int64 last_state_transition_time = 7;}
#
Subscription MessagesTopologySubscription
#
message TopologySubscription { repeated string keys = 1; repeated string properties = 2;}
TelemetrySubscription
#
message TelemetrySubscription { repeated InterfaceIdentifier interface_ids = 1; repeated string properties = 2;}
LsNodeEvent
#
message LsNodeEvent { required string action = 1; required string key = 2; optional LsNode ls_node = 3;}
LsLinkEvent
#
message LsLinkEvent { required string action = 1; required string key = 2; optional LsLink ls_link = 3;}
LsPrefixEvent
#
message LsPrefixEvent { required string action = 1; required string key = 2; optional LsPrefix ls_prefix = 3;}
LsSrv6SidEvent
#
message LsSrv6SidEvent { required string action = 1; required string key = 2; optional LsSrv6Sid ls_srv6_sid = 3;}
LsNodeEdgeEvent
#
message LsNodeEdgeEvent { required string action = 1; required string key = 2; optional LsNodeEdge ls_node_edge = 3;}
TelemetryEvent
#
message TelemetryEvent { required InterfaceIdentifier interface_id = 1; optional string ipv4_address = 2; optional int64 data_rate = 3; optional int64 packets_sent = 4; optional int64 packets_received = 5; optional string state = 6; optional int64 last_state_transition_time = 7;}
#
Common MessagesThese messages are used by both the Request Service and the Subscription Service.
LsNode
#
message LsNode { required string key = 1; optional string id = 2; optional string router_hash = 3; optional int64 domain_id = 4; optional string router_ip = 5; optional string peer_hash = 6; optional string peer_ip = 7; optional int32 peer_asn = 8; optional string timestamp = 9; optional string igp_router_id = 10; optional uint32 asn = 11; repeated MultiTopologyIdentifier mtid = 12; optional string area_id = 13; optional string protocol = 14; optional uint32 protocol_id = 15; // protobuf does not support uint8 optional string name = 16; optional bool is_prepolicy = 17; optional bool is_adj_rib_in = 18;}
LsLink
#
message LsLink { required string key = 1; optional string id = 2; optional string router_hash = 3; optional string router_ip = 4; optional int64 domain_id = 5; optional string peer_hash = 6; optional string peer_ip = 7; optional int32 peer_asn = 8; optional string timestamp = 9; optional string igp_router_id = 10; optional string protocol = 11; optional string area_id = 12; optional string nexthop = 13; optional MultiTopologyIdentifier mtid = 14; optional string local_link_id = 15; optional string remote_link_id = 16; optional string local_link_ip = 17; optional string remote_link_ip = 18; optional uint32 igp_metric = 19; optional string remote_node_hash = 20; optional string local_node_hash = 21; optional string remote_igp_router_id = 22;}
LsPrefix
#
message LsPrefix { required string key = 1; optional string id = 2; optional string router_hash = 3; optional string router_ip = 4; optional int64 domain_id = 5; optional string peer_hash = 6; optional string peer_ip = 7; optional int32 peer_asn = 8; optional string timestamp = 9; optional string igp_router_id = 10; optional string protocol = 11; optional string area_id = 12; optional string nexthop = 13; optional string local_node_hash = 14; optional MultiTopologyIdentifier mtid = 15; optional string prefix = 16; optional int32 prefix_len = 17; optional uint32 prefix_metric = 18; optional bool is_prepolicy = 19; optional bool is_adj_rib_in = 20;}
LsSrv6Sid
#
message LsSrv6Sid { required string key = 1; optional string id = 2; optional string router_hash = 3; optional string router_ip = 4; optional int64 domain_id = 5; optional string peer_hash = 6; optional string peer_ip = 7; optional int32 peer_asn = 8; optional string timestamp = 9; optional string igp_router_id = 10; optional uint32 local_node_asn = 11; optional string protocol = 12; optional string nexthop = 13; optional string local_node_hash = 14; optional MultiTopologyIdentifier mtid = 15; optional uint32 igp_flags = 16; // protobuf does not support uint8 optional bool is_prepolicy = 17; optional bool is_adj_rib_in = 18; optional string srv6_sid = 19;}
LsNodeEdge
#
message LsNodeEdge { required string key = 1; optional string id = 2; optional string from = 3; optional string to = 4; optional string link = 5;}
#
Base MessagesMultiTopologyIdentifier
#
message MultiTopologyIdentifier { required bool o_flag = 1; required bool a_flag = 2; required uint32 mtid = 3; // protobuf does not support uint16}
InterfaceIdentifier
#
message InterfaceIdentifier { required string hostname = 1; required int32 link_id = 2;}