Skip to content

Add support for static endpoint - #1530

Open
arun-arista wants to merge 1 commit into
openconfig:masterfrom
arun-arista:staticEndpoint
Open

Add support for static endpoint#1530
arun-arista wants to merge 1 commit into
openconfig:masterfrom
arun-arista:staticEndpoint

Conversation

@arun-arista

Copy link
Copy Markdown
  • (M) release/models/network-instance/openconfig-network-instance-types.yang
  • (M) release/models/network-instance/openconfig-network-instance.yang

Change Scope

  • The Static MPLS Pseudowire feature allows encapsulating (and decapsulating) L2 traffic from a given interface or subinterface over a GRE or GUE tunnel. Users can statically configure a pseudowire with a GRE tunnel or GUE/GRE Nexthop-group as the transport. Additionally, a local/decapsulating label and a neighbor/encapsulating MPLS label can be configured to identify the local interface the packet came in on for encapsulation/should egress out after decapsulation. A pseudowire connects a local port on the switch and the remote destination behind the tunnel at the other end. A tunnel can be configured as the transport under the pseudowire config using an existing tunnel interface configuration.
    Today it is not possible to configure a Static MPLS Pseudowire via OpenConfig.
    The proposal is to have a container named static under endpoint for supporting static mpls pseudowire. Today, there exists a local container and a remote container under endpoint. Hence, we would like to extend this by placing the static container at the same level, under endpoint.

  • This change is backwards compatible.

Platform Implementations

CLI Configuration:

switch(config)# mpls pseudowires
switch(config-mpls-pw)# static pseudowires
switch(config-mpls-pw-static)# pseudowire pwname
switch(config-mpls-pw-static-pwname)# transport { tunnel-interface | next-hop-group-name }
switch(config-mpls-pw-static-pwname)# local label <label>
switch(config-mpls-pw-static-pwname)# neighbor label <label>
switch(config-mpls-pw-static-pwname)# control-word

Example show command:

switch#sh patch panel
Patch  Connector                   Status Last Change  
------ --------------------------- ------ -----------  
patch1 1: Port-Channel7.1000       Up     5:55:12 ago  
       2: MPLS static pwname

Tree View

  module: openconfig-network-instance
    +--rw network-instances
       +--rw network-instance* [name]
          +--rw connection-points
             +--rw connection-point* [connection-point-id]
                +--rw connection-point-id    -> ../config/connection-point-id
                +--rw config
                +--ro state
                +--rw endpoints
                   +--rw endpoint* [endpoint-id]
                      +--rw endpoint-id    -> ../config/endpoint-id
                      +--rw config
                      |  +--rw endpoint-id?   string
                      |  +--rw precedence?    uint16
                      |  +--rw type?          identityref
                      +--ro state
                      |  +--ro endpoint-id?   string
                      |  +--ro precedence?    uint16
                      |  +--ro type?          identityref
                      |  +--ro active?        boolean
                      +--rw local
                      |  +--rw config
                      |  |  +--rw interface?                -> /oc-if:interfaces/interface/name
                      |  |  +--rw subinterface?             -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                      |  |  +--rw site-id?                   uint16
                      |  |  +--rw site-label-block-offset?   uint16
                      |  |  +--rw site-label-block-size?     uint16
                      |  +--ro state
                      |     +--ro interface?                -> /oc-if:interfaces/interface/name
                      |     +--ro subinterface?             -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                      |     +--ro site-id?                   uint16
                      |     +--ro site-label-block-offset?   uint16
                      |     +--ro site-label-block-size?     uint16
                      +--rw remote
                      |  +--rw config
                      |  |  +--rw remote-system?                oc-inet:ip-address
                      |  |  +--rw virtual-circuit-identifier?   uint32
                      |  |  +--rw site-id?                      uint16
                      |  +--ro state
                      |     +--ro remote-system?                oc-inet:ip-address
                      |     +--ro virtual-circuit-identifier?   uint32
                      |     +--ro site-id?                      uint16
+                     +--rw static
+                     |  +--rw config
+                     |  |  +--rw local-label?        oc-mplst:mpls-label
+                     |  |  +--rw neighbor-label?     oc-mplst:mpls-label
+                     |  |  +--rw control-word?       boolean
+                     |  |  +--rw tunnel-interface?   -> /oc-if:interfaces/interface/name
+                     |  |  +--rw next-hop-group?     -> ../../../../../../../static/next-hop-groups/next-hop-group/config/name
+                     |  +--ro state
+                     |     +--ro local-label?        oc-mplst:mpls-label
+                     |     +--ro neighbor-label?     oc-mplst:mpls-label
+                     |     +--ro control-word?       boolean
+                     |     +--ro tunnel-interface?   -> /oc-if:interfaces/interface/name
+                     |     +--ro next-hop-group?     -> ../../../../../../../static/next-hop-groups/next-hop-group/config/name
                      +--rw vxlan

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new STATIC endpoint type and its associated configuration and state attributes to the network instance model, including MPLS labels, control word settings, and transport references (tunnel interface or next-hop group). The feedback suggests adding a must statement to enforce mutual exclusion between tunnel-interface and next-hop-group to prevent invalid configurations.

Comment thread release/models/network-instance/openconfig-network-instance.yang
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant