Add unit tests
This commit is contained in:
697
vendor/github.com/osrg/gobgp/api/attribute.proto
generated
vendored
697
vendor/github.com/osrg/gobgp/api/attribute.proto
generated
vendored
@@ -26,221 +26,214 @@ import "gobgp.proto";
|
||||
|
||||
package gobgpapi;
|
||||
|
||||
message OriginAttribute {
|
||||
uint32 origin = 1;
|
||||
}
|
||||
message OriginAttribute { uint32 origin = 1; }
|
||||
|
||||
message AsSegment {
|
||||
uint32 type = 1;
|
||||
repeated uint32 numbers = 2;
|
||||
uint32 type = 1;
|
||||
repeated uint32 numbers = 2;
|
||||
}
|
||||
|
||||
message AsPathAttribute {
|
||||
repeated AsSegment segments = 1;
|
||||
}
|
||||
message AsPathAttribute { repeated AsSegment segments = 1; }
|
||||
|
||||
message NextHopAttribute {
|
||||
string next_hop = 1;
|
||||
}
|
||||
message NextHopAttribute { string next_hop = 1; }
|
||||
|
||||
message MultiExitDiscAttribute {
|
||||
uint32 med = 1;
|
||||
}
|
||||
message MultiExitDiscAttribute { uint32 med = 1; }
|
||||
|
||||
message LocalPrefAttribute {
|
||||
uint32 local_pref = 1;
|
||||
}
|
||||
message LocalPrefAttribute { uint32 local_pref = 1; }
|
||||
|
||||
message AtomicAggregateAttribute {
|
||||
}
|
||||
message AtomicAggregateAttribute {}
|
||||
|
||||
message AggregatorAttribute {
|
||||
uint32 as = 2;
|
||||
string address = 3;
|
||||
uint32 as = 2;
|
||||
string address = 3;
|
||||
}
|
||||
|
||||
message CommunitiesAttribute {
|
||||
repeated uint32 communities = 1;
|
||||
}
|
||||
message CommunitiesAttribute { repeated uint32 communities = 1; }
|
||||
|
||||
message OriginatorIdAttribute {
|
||||
string id = 1;
|
||||
}
|
||||
message OriginatorIdAttribute { string id = 1; }
|
||||
|
||||
message ClusterListAttribute {
|
||||
repeated string ids = 1;
|
||||
}
|
||||
message ClusterListAttribute { repeated string ids = 1; }
|
||||
|
||||
// IPAddressPrefix represents the NLRI for:
|
||||
// - AFI=1, SAFI=1
|
||||
// - AFI=2, SAFI=1
|
||||
message IPAddressPrefix {
|
||||
uint32 prefix_len = 1;
|
||||
string prefix = 2;
|
||||
uint32 prefix_len = 1;
|
||||
string prefix = 2;
|
||||
}
|
||||
|
||||
// LabeledIPAddressPrefix represents the NLRI for:
|
||||
// - AFI=1, SAFI=4
|
||||
// - AFI=2, SAFI=4
|
||||
message LabeledIPAddressPrefix {
|
||||
repeated uint32 labels = 1;
|
||||
uint32 prefix_len = 2;
|
||||
string prefix = 3;
|
||||
repeated uint32 labels = 1;
|
||||
uint32 prefix_len = 2;
|
||||
string prefix = 3;
|
||||
}
|
||||
|
||||
// EncapsulationNLRI represents the NLRI for:
|
||||
// - AFI=1, SAFI=7
|
||||
// - AFI=2, SAFI=7
|
||||
message EncapsulationNLRI {
|
||||
string address = 1;
|
||||
}
|
||||
message EncapsulationNLRI { string address = 1; }
|
||||
|
||||
message RouteDistinguisherTwoOctetAS {
|
||||
uint32 admin = 1;
|
||||
uint32 assigned = 2;
|
||||
uint32 admin = 1;
|
||||
uint32 assigned = 2;
|
||||
}
|
||||
|
||||
message RouteDistinguisherIPAddress {
|
||||
string admin = 1;
|
||||
uint32 assigned = 2;
|
||||
string admin = 1;
|
||||
uint32 assigned = 2;
|
||||
}
|
||||
|
||||
message RouteDistinguisherFourOctetAS {
|
||||
uint32 admin = 1;
|
||||
uint32 assigned = 2;
|
||||
uint32 admin = 1;
|
||||
uint32 assigned = 2;
|
||||
}
|
||||
|
||||
message EthernetSegmentIdentifier {
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
}
|
||||
|
||||
// EVPNEthernetAutoDiscoveryRoute represents the NLRI for:
|
||||
// - AFI=25, SAFI=70, RouteType=1
|
||||
message EVPNEthernetAutoDiscoveryRoute {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
uint32 ethernet_tag = 3;
|
||||
uint32 label = 4;
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
uint32 ethernet_tag = 3;
|
||||
uint32 label = 4;
|
||||
}
|
||||
|
||||
// EVPNMACIPAdvertisementRoute represents the NLRI for:
|
||||
// - AFI=25, SAFI=70, RouteType=2
|
||||
message EVPNMACIPAdvertisementRoute {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
uint32 ethernet_tag = 3;
|
||||
string mac_address = 4;
|
||||
string ip_address = 5;
|
||||
repeated uint32 labels = 6;
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
uint32 ethernet_tag = 3;
|
||||
string mac_address = 4;
|
||||
string ip_address = 5;
|
||||
repeated uint32 labels = 6;
|
||||
}
|
||||
|
||||
// EVPNInclusiveMulticastEthernetTagRoute represents the NLRI for:
|
||||
// - AFI=25, SAFI=70, RouteType=3
|
||||
message EVPNInclusiveMulticastEthernetTagRoute {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
uint32 ethernet_tag = 2;
|
||||
string ip_address = 3;
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
uint32 ethernet_tag = 2;
|
||||
string ip_address = 3;
|
||||
}
|
||||
|
||||
// EVPNEthernetSegmentRoute represents the NLRI for:
|
||||
// - AFI=25, SAFI=70, RouteType=4
|
||||
message EVPNEthernetSegmentRoute {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
string ip_address = 3;
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
string ip_address = 3;
|
||||
}
|
||||
|
||||
// EVPNIPPrefixRoute represents the NLRI for:
|
||||
// - AFI=25, SAFI=70, RouteType=5
|
||||
message EVPNIPPrefixRoute {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
uint32 ethernet_tag = 3;
|
||||
string ip_prefix = 4;
|
||||
uint32 ip_prefix_len = 5;
|
||||
string gw_address = 6;
|
||||
uint32 label = 7;
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
EthernetSegmentIdentifier esi = 2;
|
||||
uint32 ethernet_tag = 3;
|
||||
string ip_prefix = 4;
|
||||
uint32 ip_prefix_len = 5;
|
||||
string gw_address = 6;
|
||||
uint32 label = 7;
|
||||
}
|
||||
|
||||
// EVPNIPMSIRoute represents the NLRI for:
|
||||
// - AFI=25, SAFI=70, RouteType=9
|
||||
message EVPNIPMSIRoute {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
uint32 ethernet_tag = 2;
|
||||
google.protobuf.Any rt = 3;
|
||||
}
|
||||
|
||||
// LabeledVPNIPAddressPrefix represents the NLRI for:
|
||||
// - AFI=1, SAFI=128
|
||||
// - AFI=2, SAFI=128
|
||||
message LabeledVPNIPAddressPrefix {
|
||||
repeated uint32 labels = 1;
|
||||
// One of:
|
||||
// - TwoOctetAsSpecificExtended
|
||||
// - IPv4AddressSpecificExtended
|
||||
// - FourOctetAsSpecificExtended
|
||||
google.protobuf.Any rd = 2;
|
||||
uint32 prefix_len = 3;
|
||||
string prefix = 4;
|
||||
repeated uint32 labels = 1;
|
||||
// One of:
|
||||
// - TwoOctetAsSpecificExtended
|
||||
// - IPv4AddressSpecificExtended
|
||||
// - FourOctetAsSpecificExtended
|
||||
google.protobuf.Any rd = 2;
|
||||
uint32 prefix_len = 3;
|
||||
string prefix = 4;
|
||||
}
|
||||
|
||||
// RouteTargetMembershipNLRI represents the NLRI for:
|
||||
// - AFI=1, SAFI=132
|
||||
message RouteTargetMembershipNLRI {
|
||||
uint32 as = 1;
|
||||
// One of:
|
||||
// - TwoOctetAsSpecificExtended
|
||||
// - IPv4AddressSpecificExtended
|
||||
// - FourOctetAsSpecificExtended
|
||||
google.protobuf.Any rt = 2;
|
||||
uint32 as = 1;
|
||||
// One of:
|
||||
// - TwoOctetAsSpecificExtended
|
||||
// - IPv4AddressSpecificExtended
|
||||
// - FourOctetAsSpecificExtended
|
||||
google.protobuf.Any rt = 2;
|
||||
}
|
||||
|
||||
message FlowSpecIPPrefix {
|
||||
uint32 type = 1;
|
||||
uint32 prefix_len = 2;
|
||||
string prefix = 3;
|
||||
// IPv6 only
|
||||
uint32 offset = 4;
|
||||
uint32 type = 1;
|
||||
uint32 prefix_len = 2;
|
||||
string prefix = 3;
|
||||
// IPv6 only
|
||||
uint32 offset = 4;
|
||||
}
|
||||
|
||||
message FlowSpecMAC {
|
||||
uint32 type = 1;
|
||||
string address = 2;
|
||||
uint32 type = 1;
|
||||
string address = 2;
|
||||
}
|
||||
|
||||
message FlowSpecComponentItem {
|
||||
// Operator for Numeric type, Operand for Bitmask type
|
||||
uint32 op = 1;
|
||||
uint64 value = 2;
|
||||
// Operator for Numeric type, Operand for Bitmask type
|
||||
uint32 op = 1;
|
||||
uint64 value = 2;
|
||||
}
|
||||
|
||||
message FlowSpecComponent {
|
||||
uint32 type = 1;
|
||||
repeated FlowSpecComponentItem items = 2;
|
||||
uint32 type = 1;
|
||||
repeated FlowSpecComponentItem items = 2;
|
||||
}
|
||||
|
||||
// FlowSpecNLRI represents the NLRI for:
|
||||
// - AFI=1, SAFI=133
|
||||
// - AFI=2, SAFI=133
|
||||
message FlowSpecNLRI {
|
||||
// One of:
|
||||
// - FlowSpecIPPrefix
|
||||
// - FlowSpecMAC
|
||||
// - FlowSpecComponent
|
||||
repeated google.protobuf.Any rules = 1;
|
||||
// One of:
|
||||
// - FlowSpecIPPrefix
|
||||
// - FlowSpecMAC
|
||||
// - FlowSpecComponent
|
||||
repeated google.protobuf.Any rules = 1;
|
||||
}
|
||||
|
||||
// VPNFlowSpecNLRI represents the NLRI for:
|
||||
@@ -248,258 +241,414 @@ message FlowSpecNLRI {
|
||||
// - AFI=2, SAFI=134
|
||||
// - AFI=25, SAFI=134
|
||||
message VPNFlowSpecNLRI {
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
// One of:
|
||||
// - FlowSpecIPPrefix
|
||||
// - FlowSpecMAC
|
||||
// - FlowSpecComponent
|
||||
repeated google.protobuf.Any rules = 2;
|
||||
// One of:
|
||||
// - RouteDistinguisherTwoOctetAS
|
||||
// - RouteDistinguisherIPAddressAS
|
||||
// - RouteDistinguisherFourOctetAS
|
||||
google.protobuf.Any rd = 1;
|
||||
// One of:
|
||||
// - FlowSpecIPPrefix
|
||||
// - FlowSpecMAC
|
||||
// - FlowSpecComponent
|
||||
repeated google.protobuf.Any rules = 2;
|
||||
}
|
||||
|
||||
// OpaqueNLRI represents the NLRI for:
|
||||
// - AFI=16397, SAFI=241
|
||||
message OpaqueNLRI {
|
||||
bytes key = 1;
|
||||
bytes value = 2;
|
||||
bytes key = 1;
|
||||
bytes value = 2;
|
||||
}
|
||||
|
||||
message LsNodeDescriptor {
|
||||
uint32 asn = 1;
|
||||
uint32 bgp_ls_id = 2;
|
||||
uint32 ospf_area_id = 3;
|
||||
bool pseudonode = 4;
|
||||
string igp_router_id = 5;
|
||||
}
|
||||
|
||||
message LsLinkDescriptor {
|
||||
uint32 link_local_id = 1;
|
||||
uint32 link_remote_id = 2;
|
||||
string interface_addr_ipv4 = 3;
|
||||
string neighbor_addr_ipv4 = 4;
|
||||
string interface_addr_ipv6 = 5;
|
||||
string neighbor_addr_ipv6 = 6;
|
||||
}
|
||||
|
||||
message LsPrefixDescriptor {
|
||||
repeated string ip_reachability = 1;
|
||||
string ospf_route_type = 2;
|
||||
}
|
||||
|
||||
message LsNodeNLRI { LsNodeDescriptor local_node = 1; }
|
||||
|
||||
message LsLinkNLRI {
|
||||
LsNodeDescriptor local_node = 1;
|
||||
LsNodeDescriptor remote_node = 2;
|
||||
LsLinkDescriptor link_descriptor = 3;
|
||||
}
|
||||
|
||||
message LsPrefixV4NLRI {
|
||||
LsNodeDescriptor local_node = 1;
|
||||
LsPrefixDescriptor prefix_descriptor = 2;
|
||||
}
|
||||
|
||||
message LsPrefixV6NLRI {
|
||||
LsNodeDescriptor local_node = 1;
|
||||
LsPrefixDescriptor prefix_descriptor = 2;
|
||||
}
|
||||
|
||||
// Based om RFC 7752, Table 1.
|
||||
enum LsNLRIType {
|
||||
LS_NLRI_UNKNOWN = 0;
|
||||
LS_NLRI_NODE = 1;
|
||||
LS_NLRI_LINK = 2;
|
||||
LS_NLRI_PREFIX_V4 = 3;
|
||||
LS_NLRI_PREFIX_V6 = 4;
|
||||
}
|
||||
|
||||
// LsAddrPrefix represents the NLRI for:
|
||||
// - AFI=16388, SAFI=71
|
||||
message LsAddrPrefix {
|
||||
LsNLRIType type = 1;
|
||||
// One of:
|
||||
// - LsNodeNLRI
|
||||
// - LsLinkNLRI
|
||||
// - LsPrefixV4NLRI
|
||||
// - LsPrefixV6NLRI
|
||||
google.protobuf.Any nlri = 2;
|
||||
}
|
||||
|
||||
message MpReachNLRIAttribute {
|
||||
gobgpapi.Family family = 1;
|
||||
repeated string next_hops = 2;
|
||||
// Each NLRI must be one of:
|
||||
// - IPAddressPrefix
|
||||
// - LabeledIPAddressPrefix
|
||||
// - EncapsulationNLRI
|
||||
// - EVPNEthernetAutoDiscoveryRoute
|
||||
// - EVPNMACIPAdvertisementRoute
|
||||
// - EVPNInclusiveMulticastEthernetTagRoute
|
||||
// - EVPNEthernetSegmentRoute
|
||||
// - EVPNIPPrefixRoute
|
||||
// - LabeledVPNIPAddressPrefix
|
||||
// - RouteTargetMembershipNLRI
|
||||
// - FlowSpecNLRI
|
||||
// - VPNFlowSpecNLRI
|
||||
// - OpaqueNLRI
|
||||
repeated google.protobuf.Any nlris = 3;
|
||||
gobgpapi.Family family = 1;
|
||||
repeated string next_hops = 2;
|
||||
// Each NLRI must be one of:
|
||||
// - IPAddressPrefix
|
||||
// - LabeledIPAddressPrefix
|
||||
// - EncapsulationNLRI
|
||||
// - EVPNEthernetAutoDiscoveryRoute
|
||||
// - EVPNMACIPAdvertisementRoute
|
||||
// - EVPNInclusiveMulticastEthernetTagRoute
|
||||
// - EVPNEthernetSegmentRoute
|
||||
// - EVPNIPPrefixRoute
|
||||
// - EVPNIPMSIRoute
|
||||
// - LabeledVPNIPAddressPrefix
|
||||
// - RouteTargetMembershipNLRI
|
||||
// - FlowSpecNLRI
|
||||
// - VPNFlowSpecNLRI
|
||||
// - OpaqueNLRI
|
||||
// - LsAddrPrefix
|
||||
repeated google.protobuf.Any nlris = 3;
|
||||
}
|
||||
|
||||
message MpUnreachNLRIAttribute {
|
||||
gobgpapi.Family family = 1;
|
||||
// The same as NLRI field of MpReachNLRIAttribute
|
||||
repeated google.protobuf.Any nlris = 3;
|
||||
gobgpapi.Family family = 1;
|
||||
// The same as NLRI field of MpReachNLRIAttribute
|
||||
repeated google.protobuf.Any nlris = 3;
|
||||
}
|
||||
|
||||
message TwoOctetAsSpecificExtended {
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
uint32 as = 3;
|
||||
uint32 local_admin = 4;
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
uint32 as = 3;
|
||||
uint32 local_admin = 4;
|
||||
}
|
||||
|
||||
message IPv4AddressSpecificExtended {
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
string address = 3;
|
||||
uint32 local_admin = 4;
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
string address = 3;
|
||||
uint32 local_admin = 4;
|
||||
}
|
||||
|
||||
message FourOctetAsSpecificExtended {
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
uint32 as = 3;
|
||||
uint32 local_admin = 4;
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
uint32 as = 3;
|
||||
uint32 local_admin = 4;
|
||||
}
|
||||
|
||||
message ValidationExtended {
|
||||
uint32 state = 1;
|
||||
}
|
||||
message ValidationExtended { uint32 state = 1; }
|
||||
|
||||
message ColorExtended {
|
||||
uint32 color = 1;
|
||||
}
|
||||
message ColorExtended { uint32 color = 1; }
|
||||
|
||||
message EncapExtended {
|
||||
uint32 tunnel_type = 1;
|
||||
}
|
||||
message EncapExtended { uint32 tunnel_type = 1; }
|
||||
|
||||
message DefaultGatewayExtended {
|
||||
}
|
||||
message DefaultGatewayExtended {}
|
||||
|
||||
message OpaqueExtended {
|
||||
bool is_transitive = 1;
|
||||
bytes value = 3;
|
||||
bool is_transitive = 1;
|
||||
bytes value = 3;
|
||||
}
|
||||
|
||||
message ESILabelExtended {
|
||||
bool is_single_active = 1;
|
||||
uint32 label = 2;
|
||||
bool is_single_active = 1;
|
||||
uint32 label = 2;
|
||||
}
|
||||
|
||||
message ESImportRouteTarget {
|
||||
string es_import = 1;
|
||||
}
|
||||
message ESImportRouteTarget { string es_import = 1; }
|
||||
|
||||
message MacMobilityExtended {
|
||||
bool is_sticky = 1;
|
||||
uint32 sequence_num = 2;
|
||||
bool is_sticky = 1;
|
||||
uint32 sequence_num = 2;
|
||||
}
|
||||
|
||||
message RouterMacExtended {
|
||||
string mac = 1;
|
||||
}
|
||||
message RouterMacExtended { string mac = 1; }
|
||||
|
||||
message TrafficRateExtended {
|
||||
uint32 as = 1;
|
||||
float rate = 2;
|
||||
uint32 as = 1;
|
||||
float rate = 2;
|
||||
}
|
||||
|
||||
message TrafficActionExtended {
|
||||
bool terminal = 1;
|
||||
bool sample = 2;
|
||||
bool terminal = 1;
|
||||
bool sample = 2;
|
||||
}
|
||||
|
||||
message RedirectTwoOctetAsSpecificExtended {
|
||||
uint32 as = 1;
|
||||
uint32 local_admin = 2;
|
||||
uint32 as = 1;
|
||||
uint32 local_admin = 2;
|
||||
}
|
||||
|
||||
message RedirectIPv4AddressSpecificExtended {
|
||||
string address = 1;
|
||||
uint32 local_admin = 2;
|
||||
string address = 1;
|
||||
uint32 local_admin = 2;
|
||||
}
|
||||
|
||||
message RedirectFourOctetAsSpecificExtended {
|
||||
uint32 as = 1;
|
||||
uint32 local_admin = 2;
|
||||
uint32 as = 1;
|
||||
uint32 local_admin = 2;
|
||||
}
|
||||
|
||||
message TrafficRemarkExtended {
|
||||
uint32 dscp = 1;
|
||||
}
|
||||
message TrafficRemarkExtended { uint32 dscp = 1; }
|
||||
|
||||
message UnknownExtended {
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
}
|
||||
|
||||
message ExtendedCommunitiesAttribute {
|
||||
// Each Community must be one of:
|
||||
// - TwoOctetAsSpecificExtended
|
||||
// - IPv4AddressSpecificExtended
|
||||
// - FourOctetAsSpecificExtended
|
||||
// - OpaqueExtended
|
||||
// - ESILabelExtended
|
||||
// - MacMobilityExtended
|
||||
// - RouterMacExtended
|
||||
// - TrafficRateExtended
|
||||
// - TrafficActionExtended
|
||||
// - RedirectTwoOctetAsSpecificExtended
|
||||
// - RedirectIPv4AddressSpecificExtended
|
||||
// - RedirectFourOctetAsSpecificExtended
|
||||
// - TrafficRemarkExtended
|
||||
// - UnknownExtended
|
||||
repeated google.protobuf.Any communities = 1;
|
||||
// Each Community must be one of:
|
||||
// - TwoOctetAsSpecificExtended
|
||||
// - IPv4AddressSpecificExtended
|
||||
// - FourOctetAsSpecificExtended
|
||||
// - OpaqueExtended
|
||||
// - ESILabelExtended
|
||||
// - MacMobilityExtended
|
||||
// - RouterMacExtended
|
||||
// - TrafficRateExtended
|
||||
// - TrafficActionExtended
|
||||
// - RedirectTwoOctetAsSpecificExtended
|
||||
// - RedirectIPv4AddressSpecificExtended
|
||||
// - RedirectFourOctetAsSpecificExtended
|
||||
// - TrafficRemarkExtended
|
||||
// - UnknownExtended
|
||||
repeated google.protobuf.Any communities = 1;
|
||||
}
|
||||
|
||||
message As4PathAttribute {
|
||||
repeated AsSegment segments = 1;
|
||||
}
|
||||
message As4PathAttribute { repeated AsSegment segments = 1; }
|
||||
|
||||
message As4AggregatorAttribute {
|
||||
uint32 as = 2;
|
||||
string address = 3;
|
||||
uint32 as = 2;
|
||||
string address = 3;
|
||||
}
|
||||
|
||||
message PmsiTunnelAttribute {
|
||||
uint32 flags = 1;
|
||||
uint32 type = 2;
|
||||
uint32 label = 3;
|
||||
bytes id = 4;
|
||||
uint32 flags = 1;
|
||||
uint32 type = 2;
|
||||
uint32 label = 3;
|
||||
bytes id = 4;
|
||||
}
|
||||
|
||||
message TunnelEncapSubTLVEncapsulation {
|
||||
uint32 key = 1;
|
||||
bytes cookie = 2;
|
||||
uint32 key = 1;
|
||||
bytes cookie = 2;
|
||||
}
|
||||
|
||||
message TunnelEncapSubTLVProtocol {
|
||||
uint32 protocol = 1;
|
||||
}
|
||||
message TunnelEncapSubTLVProtocol { uint32 protocol = 1; }
|
||||
|
||||
message TunnelEncapSubTLVColor {
|
||||
uint32 color = 1;
|
||||
}
|
||||
message TunnelEncapSubTLVColor { uint32 color = 1; }
|
||||
|
||||
message TunnelEncapSubTLVUnknown {
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
}
|
||||
|
||||
message TunnelEncapTLV {
|
||||
uint32 type = 1;
|
||||
// Each TLV must be one of:
|
||||
// - TunnelEncapSubTLVEncapsulation
|
||||
// - TunnelEncapSubTLVProtocol
|
||||
// - TunnelEncapSubTLVColor
|
||||
// - TunnelEncapSubTLVUnknown
|
||||
repeated google.protobuf.Any tlvs = 2;
|
||||
uint32 type = 1;
|
||||
// Each TLV must be one of:
|
||||
// - TunnelEncapSubTLVEncapsulation
|
||||
// - TunnelEncapSubTLVProtocol
|
||||
// - TunnelEncapSubTLVColor
|
||||
// - TunnelEncapSubTLVUnknown
|
||||
repeated google.protobuf.Any tlvs = 2;
|
||||
}
|
||||
|
||||
message TunnelEncapAttribute {
|
||||
repeated TunnelEncapTLV tlvs = 1;
|
||||
}
|
||||
message TunnelEncapAttribute { repeated TunnelEncapTLV tlvs = 1; }
|
||||
|
||||
message IPv6AddressSpecificExtended {
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
string address = 3;
|
||||
uint32 local_admin = 4;
|
||||
bool is_transitive = 1;
|
||||
uint32 sub_type = 2;
|
||||
string address = 3;
|
||||
uint32 local_admin = 4;
|
||||
}
|
||||
|
||||
message RedirectIPv6AddressSpecificExtended {
|
||||
string address = 1;
|
||||
uint32 local_admin = 2;
|
||||
string address = 1;
|
||||
uint32 local_admin = 2;
|
||||
}
|
||||
|
||||
message IP6ExtendedCommunitiesAttribute {
|
||||
// Each Community must be one of:
|
||||
// - IPv6AddressSpecificExtended
|
||||
// - RedirectIPv6AddressSpecificExtended
|
||||
repeated google.protobuf.Any communities = 1;
|
||||
// Each Community must be one of:
|
||||
// - IPv6AddressSpecificExtended
|
||||
// - RedirectIPv6AddressSpecificExtended
|
||||
repeated google.protobuf.Any communities = 1;
|
||||
}
|
||||
|
||||
message AigpTLVIGPMetric {
|
||||
uint64 metric = 1;
|
||||
}
|
||||
message AigpTLVIGPMetric { uint64 metric = 1; }
|
||||
|
||||
message AigpTLVUnknown {
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
uint32 type = 1;
|
||||
bytes value = 2;
|
||||
}
|
||||
|
||||
message AigpAttribute {
|
||||
// Each TLV must be one of:
|
||||
// - AigpTLVIGPMetric
|
||||
// - AigpTLVUnknown
|
||||
repeated google.protobuf.Any tlvs = 1;
|
||||
// Each TLV must be one of:
|
||||
// - AigpTLVIGPMetric
|
||||
// - AigpTLVUnknown
|
||||
repeated google.protobuf.Any tlvs = 1;
|
||||
}
|
||||
|
||||
message LargeCommunity {
|
||||
uint32 global_admin = 1;
|
||||
uint32 local_data1 = 2;
|
||||
uint32 local_data2 = 3;
|
||||
uint32 global_admin = 1;
|
||||
uint32 local_data1 = 2;
|
||||
uint32 local_data2 = 3;
|
||||
}
|
||||
|
||||
message LargeCommunitiesAttribute {
|
||||
repeated LargeCommunity communities = 1;
|
||||
message LargeCommunitiesAttribute { repeated LargeCommunity communities = 1; }
|
||||
|
||||
message LsNodeFlags {
|
||||
bool overload = 1;
|
||||
bool attached = 2;
|
||||
bool external = 3;
|
||||
bool abr = 4;
|
||||
bool router = 5;
|
||||
bool v6 = 6;
|
||||
}
|
||||
|
||||
message LsIGPFlags {
|
||||
bool down = 1;
|
||||
bool no_unicast = 2;
|
||||
bool local_address = 3;
|
||||
bool propagate_nssa = 4;
|
||||
}
|
||||
|
||||
message LsSrRange {
|
||||
uint32 begin = 1;
|
||||
uint32 end = 2;
|
||||
}
|
||||
|
||||
message LsSrCapabilities {
|
||||
bool ipv4_supported = 1;
|
||||
bool ipv6_supported = 2;
|
||||
repeated LsSrRange ranges = 3;
|
||||
}
|
||||
|
||||
message LsSrLocalBlock { repeated LsSrRange ranges = 1; }
|
||||
|
||||
message LsAttributeNode {
|
||||
string name = 1;
|
||||
LsNodeFlags flags = 2;
|
||||
string local_router_id = 3;
|
||||
string local_router_id_v6 = 4;
|
||||
bytes isis_area = 5;
|
||||
bytes opaque = 6;
|
||||
|
||||
LsSrCapabilities sr_capabilities = 7;
|
||||
bytes sr_algorithms = 8;
|
||||
LsSrLocalBlock sr_local_block = 9;
|
||||
}
|
||||
|
||||
message LsAttributeLink {
|
||||
string name = 1;
|
||||
string local_router_id = 2;
|
||||
string local_router_id_v6 = 3;
|
||||
string remote_router_id = 4;
|
||||
string remote_router_id_v6 = 5;
|
||||
uint32 admin_group = 6;
|
||||
uint32 default_te_metric = 7;
|
||||
uint32 igp_metric = 8;
|
||||
bytes opaque = 9;
|
||||
|
||||
float bandwidth = 10;
|
||||
float reservable_bandwidth = 11;
|
||||
repeated float unreserved_bandwidth = 12;
|
||||
|
||||
uint32 sr_adjacency_sid = 13;
|
||||
repeated uint32 srlgs = 14;
|
||||
}
|
||||
|
||||
message LsAttributePrefix {
|
||||
LsIGPFlags igp_flags = 1;
|
||||
bytes opaque = 2;
|
||||
|
||||
uint32 sr_prefix_sid = 3;
|
||||
}
|
||||
|
||||
message LsAttribute {
|
||||
LsAttributeNode node = 1;
|
||||
LsAttributeLink link = 2;
|
||||
LsAttributePrefix prefix = 3;
|
||||
}
|
||||
|
||||
message UnknownAttribute {
|
||||
uint32 flags = 1;
|
||||
uint32 type = 2;
|
||||
bytes value = 3;
|
||||
uint32 flags = 1;
|
||||
uint32 type = 2;
|
||||
bytes value = 3;
|
||||
}
|
||||
|
||||
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2.1.1
|
||||
message SRv6StructureSubSubTLV {
|
||||
uint32 local_block_length = 1;
|
||||
uint32 local_node_length = 2;
|
||||
uint32 function_length = 3;
|
||||
uint32 argument_length = 4;
|
||||
uint32 transposition_length = 5;
|
||||
uint32 transposition_offset = 6;
|
||||
}
|
||||
|
||||
message SRv6SIDFlags {
|
||||
// Placeholder for future sid flags
|
||||
bool flag_1 = 1;
|
||||
}
|
||||
|
||||
message SRv6TLV { repeated google.protobuf.Any tlv = 1; }
|
||||
|
||||
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2.1.1
|
||||
message SRv6InformationSubTLV {
|
||||
bytes sid = 1;
|
||||
SRv6SIDFlags flags = 2;
|
||||
uint32 endpoint_behavior = 3;
|
||||
// SRv6TLV is one of:
|
||||
// - SRv6StructureSubSubTLV
|
||||
map<uint32, SRv6TLV> sub_sub_tlvs = 4;
|
||||
}
|
||||
|
||||
// https://tools.ietf.org/html/draft-dawra-bess-srv6-services-02#section-2
|
||||
message SRv6L3ServiceTLV {
|
||||
// SRv6TLV is one of:
|
||||
// - SRv6InformationSubTLV
|
||||
map<uint32, SRv6TLV> sub_tlvs = 1;
|
||||
}
|
||||
|
||||
// https://tools.ietf.org/html/rfc8669
|
||||
message PrefixSID {
|
||||
// tlv is one of:
|
||||
// - IndexLabelTLV Type 1 (not yet implemented)
|
||||
// - OriginatorSRGBTLV Type 3 (not yet implemented)
|
||||
// - SRv6L3ServiceTLV Type 5
|
||||
// - SRv6L2ServiceTLV Type 6 (not yet implemented)
|
||||
repeated google.protobuf.Any tlvs = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user