forked from FRRouting/frr
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fpm: Add SRv6 Local SIDs to
fpm.proto
Add several protobuf messages to support the installation and removal of SRv6 Local SIDs via FPM protobuf. This is a preliminary commit to support sending SRv6 Local SIDs and VPN SIDs via protobuf. Signed-off-by: Carmine Scarpitta <[email protected]>
- Loading branch information
1 parent
3a109ef
commit 589909d
Showing
1 changed file
with
139 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,8 @@ | |
// | ||
// @author Avneesh Sachdev <[email protected]> | ||
// | ||
// Copyright (C) 2024 Carmine Scarpitta - CISCO (for SRv6) | ||
// | ||
// Permission to use, copy, modify, and/or distribute this software | ||
// for any purpose with or without fee is hereby granted, provided | ||
// that the above copyright notice and this permission notice appear | ||
|
@@ -74,6 +76,136 @@ message AddRoute { | |
repeated Nexthop nexthops = 9; | ||
} | ||
|
||
/* SID Format - as per RFC 8986 section #3.1 */ | ||
message SRv6SIDFormat | ||
{ | ||
/* Locator block length */ | ||
required uint32 locator_block_length = 1; | ||
/* Locator node length */ | ||
required uint32 locator_node_length = 2; | ||
/* Function length */ | ||
required uint32 function_length = 3; | ||
/* Argument length */ | ||
required uint32 argument_length = 4; | ||
} | ||
|
||
/* SRv6 Local SID */ | ||
message SRv6LocalSID | ||
{ | ||
/* SRv6 SID value */ | ||
required qpb.Ipv6Address sid = 1; | ||
|
||
/* SID Format - as per RFC 8986 section #3.1 */ | ||
optional SRv6SIDFormat sid_format = 2; | ||
|
||
/* SRv6 Endpoint Behavior associated with the SID */ | ||
oneof end_behavior | ||
{ | ||
/* Endpoint */ | ||
End end = 3; | ||
/* Endpoint with L3 cross-connect */ | ||
EndX end_x = 4; | ||
/* Endpoint with specific IPv6 table lookup */ | ||
EndT end_t = 5; | ||
/* Endpoint with decapsulation and IPv6 cross-connect */ | ||
EndDX6 end_dx6 = 7; | ||
/* Endpoint with decapsulation and IPv4 cross-connect */ | ||
EndDX4 end_dx4 = 8; | ||
/* Endpoint with decapsulation and specific IPv6 table lookup */ | ||
EndDT6 end_dt6 = 9; | ||
/* Endpoint with decapsulation and specific IPv4 table lookup */ | ||
EndDT4 end_dt4 = 10; | ||
/* Endpoint with decapsulation and specific IP table lookup */ | ||
EndDT46 end_dt46 = 11; | ||
/* Endpoint behavior with NEXT-CSID, PSP and USD flavors */ | ||
UN un = 12; | ||
/* End.X behavior with NEXT-CSID, PSP and USD flavors */ | ||
UA ua = 13; | ||
/* End.DT6 behavior with NEXT-CSID flavor */ | ||
UDT6 udt6 = 14; | ||
/* End.DT4 behavior with NEXT-CSID flavor */ | ||
UDT4 udt4 = 15; | ||
/* End.DT46 behavior with NEXT-CSID flavor */ | ||
UDT46 udt46 = 16; | ||
} | ||
|
||
/* Endpoint */ | ||
message End | ||
{ | ||
} | ||
|
||
/* Endpoint with L3 cross-connect */ | ||
message EndX | ||
{ | ||
required Nexthop nexthop = 1; | ||
} | ||
|
||
/* Endpoint with specific IPv6 table lookup */ | ||
message EndT | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
|
||
/* Endpoint with decapsulation and IPv6 cross-connect */ | ||
message EndDX6 | ||
{ | ||
required Nexthop nexthop = 1; | ||
} | ||
|
||
/* Endpoint with decapsulation and IPv4 cross-connect */ | ||
message EndDX4 | ||
{ | ||
required Nexthop nexthop = 1; | ||
} | ||
|
||
/* Endpoint with decapsulation and specific IPv6 table lookup */ | ||
message EndDT6 | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
|
||
/* Endpoint with decapsulation and specific IPv4 table lookup */ | ||
message EndDT4 | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
|
||
/* Endpoint with decapsulation and specific IP table lookup */ | ||
message EndDT46 | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
|
||
/* Endpoint behavior with NEXT-CSID, PSP and USD flavors */ | ||
message UN | ||
{ | ||
} | ||
|
||
/* End.X behavior with NEXT-CSID, PSP and USD flavors */ | ||
message UA | ||
{ | ||
required Nexthop nexthop = 1; | ||
} | ||
|
||
/* End.DT6 behavior with NEXT-CSID flavor */ | ||
message UDT6 | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
|
||
/* End.DT4 behavior with NEXT-CSID flavor */ | ||
message UDT4 | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
|
||
/* End.DT46 behavior with NEXT-CSID flavor */ | ||
message UDT46 | ||
{ | ||
required uint32 vrf_id = 1; | ||
} | ||
} | ||
|
||
// | ||
// Any message from the FPM. | ||
// | ||
|
@@ -82,10 +214,17 @@ message Message { | |
UNKNOWN_MSG = 0; | ||
ADD_ROUTE = 1; | ||
DELETE_ROUTE = 2; | ||
/* Install an SRv6 Local SID */ | ||
ADD_SRV6_LOCALSID = 3; | ||
/* Remove an SRv6 Local SID */ | ||
DELETE_SRV6_LOCALSID = 4; | ||
}; | ||
|
||
optional Type type = 1; | ||
|
||
optional AddRoute add_route = 2; | ||
optional DeleteRoute delete_route = 3; | ||
|
||
/* SRv6 Local SID */ | ||
optional SRv6LocalSID srv6_localsid = 4; | ||
} |