From b45744cfc2fe07dce3f33d1b78835cb8c6169b14 Mon Sep 17 00:00:00 2001 From: Dylan Walsh Date: Fri, 13 Dec 2024 13:15:29 +0000 Subject: [PATCH] EOS SDK RPC v4.32.2F --- proto/eth_lag_intf.proto | 52 +++++++++++++++++++++++++++++++++ proto/eth_lag_intf_types.proto | 2 ++ proto/mpls_route.proto | 37 +++++++++++++++++++++++ proto/mpls_route_types.proto | 12 ++++++++ proto/nexthop_group_types.proto | 7 +++-- 5 files changed, 108 insertions(+), 2 deletions(-) diff --git a/proto/eth_lag_intf.proto b/proto/eth_lag_intf.proto index 2aa8477..bcfd446 100644 --- a/proto/eth_lag_intf.proto +++ b/proto/eth_lag_intf.proto @@ -114,6 +114,27 @@ service EthLagIntfMgrService { */ rpc bulk_min_links_is( BulkEthLagIntfMinLinksIsRequest ) returns ( BulkEthLagIntfMinLinksIsResponse ) {} + /** + * Returns the configured value for minimum speed (in Mbps) + * + * EosSdk reference: eos::eth_lag_intf_mgr::min_speed + */ + rpc min_speed( EthLagIntfMinSpeedRequest ) returns ( EthLagIntfMinSpeedResponse ); + + /** + * Sets the configuration for minimum speed (in Mbps) + * + * EosSdk reference: eos::eth_lag_intf_mgr::min_speed_is + */ + rpc min_speed_is( EthLagIntfMinSpeedIsRequest ) returns ( EthLagIntfMinSpeedIsResponse ); + + /** + * Bulk variant for min_speed_is + * + * EosSdk reference: eos::eth_lag_intf_mgr::min_speed_is + */ + rpc bulk_min_speed_is( BulkEthLagIntfMinSpeedIsRequest ) returns ( BulkEthLagIntfMinSpeedIsResponse ); + /** * Sets the fallback type for a LAG interface. * @@ -464,6 +485,37 @@ message EthLagIntfMinLinksResponse { uint32 min_links = 1; } +message EthLagIntfMinSpeedRequest { + // LAG interface ID (Port-Channel) + IntfId eth_lag_intf_id = 1; +} + +message EthLagIntfMinSpeedResponse { + // Speed in Mbps + uint64 min_speed = 1; +} + +message EthLagIntfMinSpeedIsRequest { + // LAG interface ID (Port-Channel) + IntfId eth_lag_intf_id = 1; + // Speed in Mbps + uint64 min_speed = 2; +} + +message EthLagIntfMinSpeedIsResponse {} + +message BulkEthLagIntfMinSpeedIsRequest { + // List of individual requests + repeated EthLagIntfMinSpeedIsRequest requests = 1; +} + +message BulkEthLagIntfMinSpeedIsResponse { + // Number of successful requests. + uint64 processed = 1; + // Cause of error (if any). + RpcResponseStatus status = 2; +} + message EthLagIntfFallbackTypeIsRequest { // Interface ID for the LAG interface. IntfId eth_lag_intf_id = 1; diff --git a/proto/eth_lag_intf_types.proto b/proto/eth_lag_intf_types.proto index dce85e9..a9db6b8 100644 --- a/proto/eth_lag_intf_types.proto +++ b/proto/eth_lag_intf_types.proto @@ -22,6 +22,8 @@ message EthLagIntf { uint32 fallback_timeout = 5; // Default value for the timeout above, in seconds. uint32 default_fallback_timeout = 6; + // Minimal speed in Mbps. + uint64 min_speed = 7; } enum EthLagIntfFallbackType { diff --git a/proto/mpls_route.proto b/proto/mpls_route.proto index 5628de6..af31f66 100644 --- a/proto/mpls_route.proto +++ b/proto/mpls_route.proto @@ -20,6 +20,20 @@ service MplsRouteMgrService { */ rpc watch( MplsRouteWatchRequest ) returns (stream MplsRouteWatchResponse ) {} + /** + * Subscription to monitor accurate programming of MPLS routes in hardware along + * with the NHG it was pointing to and its programmed version. This request stays + * active until the client cancels or the server shuts down. + * + * MplsIntegratedAckResponse will be generated only for versioned MPLS routes that + * point to a single versioned nexthop group (NHG version could be explicitly set + * by the client or auto-versioned), i.e., 'version_id' field set as part of + * 'MplsRouteSetRequest' and 'MplsRouteVia' contains non-empty 'nexthop_group' + * field. + */ + rpc watch_mpls_integrated( MplsIntegratedAckRequest ) returns ( + stream MplsIntegratedAckResponse ) {} + /** * Initiate a MPLS resync proccess. Starts a blank configuration to be applied once * resync_complete is called. @@ -199,6 +213,8 @@ message OnMplsRouteSet { MplsRouteKey route_key = 1; // The ID of the MPLS route's associated FEC. MplsFecId fec_id = 2; + // The version of the MPLS route, 0 means version is unset. + uint32 version_id = 3; } /** @@ -249,6 +265,27 @@ message MplsRouteWatchResponse { OnMplsRouteDump on_mpls_route_dump = 6; } +message MplsIntegratedAckRequest {} + +message NexthopGroupVersionInfo { + string name = 1; + uint32 version = 2; +} + +message MplsRouteViaSetVersionInfo { + MplsRouteKey mpls_route_key = 1; + uint32 mpls_route_version_id = 2; + NexthopGroupVersionInfo nexthop_group_version_info = 3; + ViaSetProgrammedHwState hw_state = 4; +} + +message MplsIntegratedAckResponse { + // When this field is set to 'True' it indicates RPC server + // has registered for any future updates and streams them. + bool stream_ready = 1; + MplsRouteViaSetVersionInfo route_version_info = 2; +} + message MplsRouteResyncInitRequest {} message MplsRouteResyncInitResponse {} diff --git a/proto/mpls_route_types.proto b/proto/mpls_route_types.proto index 9b05f71..9228f81 100644 --- a/proto/mpls_route_types.proto +++ b/proto/mpls_route_types.proto @@ -29,6 +29,8 @@ message MplsFecId { */ message MplsRoute { MplsRouteKey key = 1; + // MPLS route version in range <1-65535> + optional uint32 version_id = 2; } /** @@ -42,6 +44,16 @@ message MplsRouteKey { uint32 metric = 2; } +/** + * Programmed hardware state of the MPLS route's via set + */ +enum ViaSetProgrammedHwState { + VIA_SET_HW_UNKNOWN = 0; + VIA_SET_HW_DROP = 1; + VIA_SET_HW_PARTIALLY_PROGRAMMED = 2; + VIA_SET_HW_ALL_PROGRAMMED = 3; +} + /** * An MPLS route via, defining the action to take for a specified MPLS route. * diff --git a/proto/nexthop_group_types.proto b/proto/nexthop_group_types.proto index 553a7ad..db9109b 100644 --- a/proto/nexthop_group_types.proto +++ b/proto/nexthop_group_types.proto @@ -81,8 +81,11 @@ message NexthopGroupCounter { } enum NexthopGroupProgrammedHwState { - NEXTHOP_GROUP_HW_DROP = 0; - NEXTHOP_GROUP_HW_PARTIALLY_PROGRAMMED = 1; + // All nexthop group entries are not programmed in hardware. + NEXTHOP_GROUP_HW_DROP = 0; + // At least one nexthop group entry is programmed in hardware. + NEXTHOP_GROUP_HW_PARTIALLY_PROGRAMMED = 1; + // All nexthop group entries are programmed in hardware. NEXTHOP_GROUP_HW_ALL_PROGRAMMED = 2; }