photoncloud-monorepo/fiberlb/crates/fiberlb-server/proto/api/extcom.proto

162 lines
3.3 KiB
Protocol Buffer

syntax = "proto3";
package api;
option go_package = "github.com/osrg/gobgp/v4/api;api";
// BGP Extended communities
message TwoOctetAsSpecificExtended {
bool is_transitive = 1;
uint32 sub_type = 2;
uint32 asn = 3;
uint32 local_admin = 4;
}
message IPv4AddressSpecificExtended {
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 asn = 3;
uint32 local_admin = 4;
}
message LinkBandwidthExtended {
uint32 asn = 1;
float bandwidth = 2;
}
message ValidationExtended {
uint32 state = 1;
}
message ColorExtended {
uint32 color = 1;
}
message EncapExtended {
uint32 tunnel_type = 1;
}
message DefaultGatewayExtended {}
message OpaqueExtended {
bool is_transitive = 1;
bytes value = 3;
}
message ESILabelExtended {
bool is_single_active = 1;
uint32 label = 2;
}
message ESImportRouteTarget {
string es_import = 1;
}
message MacMobilityExtended {
bool is_sticky = 1;
uint32 sequence_num = 2;
}
message RouterMacExtended {
string mac = 1;
}
message TrafficRateExtended {
uint32 asn = 1;
float rate = 2;
}
message TrafficActionExtended {
bool terminal = 1;
bool sample = 2;
}
message RedirectTwoOctetAsSpecificExtended {
uint32 asn = 1;
uint32 local_admin = 2;
}
message RedirectIPv4AddressSpecificExtended {
string address = 1;
uint32 local_admin = 2;
}
message RedirectFourOctetAsSpecificExtended {
uint32 asn = 1;
uint32 local_admin = 2;
}
message TrafficRemarkExtended {
uint32 dscp = 1;
}
message MUPExtended {
uint32 sub_type = 1;
uint32 segment_id2 = 2;
uint32 segment_id4 = 3;
}
message VPLSExtended {
uint32 control_flags = 1;
uint32 mtu = 2;
}
message ETreeExtended {
bool is_leaf = 1;
uint32 label = 2;
}
message MulticastFlagsExtended {
bool is_igmp_proxy = 1;
bool is_mld_proxy = 2;
}
message UnknownExtended {
uint32 type = 1;
bytes value = 2;
}
message ExtendedCommunity {
oneof extcom {
UnknownExtended unknown = 1;
TwoOctetAsSpecificExtended two_octet_as_specific = 2;
IPv4AddressSpecificExtended ipv4_address_specific = 3;
FourOctetAsSpecificExtended four_octet_as_specific = 4;
LinkBandwidthExtended link_bandwidth = 5;
ValidationExtended validation = 6;
ColorExtended color = 7;
EncapExtended encap = 8;
DefaultGatewayExtended default_gateway = 9;
OpaqueExtended opaque = 10;
ESILabelExtended esi_label = 11;
ESImportRouteTarget es_import = 12;
MacMobilityExtended mac_mobility = 13;
RouterMacExtended router_mac = 14;
TrafficRateExtended traffic_rate = 15;
TrafficActionExtended traffic_action = 16;
RedirectTwoOctetAsSpecificExtended redirect_two_octet_as_specific = 17;
RedirectIPv4AddressSpecificExtended redirect_ipv4_address_specific = 18;
RedirectFourOctetAsSpecificExtended redirect_four_octet_as_specific = 19;
TrafficRemarkExtended traffic_remark = 20;
MUPExtended mup = 21;
VPLSExtended vpls = 22;
ETreeExtended etree = 23;
MulticastFlagsExtended multicast_flags = 24;
}
}
message RouteTarget {
oneof rt {
TwoOctetAsSpecificExtended two_octet_as_specific = 1;
IPv4AddressSpecificExtended ipv4_address_specific = 2;
FourOctetAsSpecificExtended four_octet_as_specific = 3;
}
}