public icon indicating copy to clipboard operation
public copied to clipboard

Augmented attributes interface-ref, payload-type and metric fields to mpls-static lsp

Open Shashank-arista opened this issue 2 years ago • 5 comments

  • (M) release/models/mpls/openconfig-mpls-static.yang
  • (M) release/models/mpls/openconfig-mpls-types.yang
  • (M) release/models/mpls/openconfig-mpls.yang
  • (M) release/models/mpls/openconfig-mpls-igp.yang
  • (M) release/models/mpls/openconfig-mpls-te.yang

Change Scope

  • Augmented with below attributes interface-ref, payload-type and metric in the path /network-instances/network-instance/mpls/lsps/static-lsps/static-lsp
  +--rw network-instances
     +--rw network-instance [name]
        +--rw mpls
           +--rw lsps
              +--rw static-lsps
                 +--rw static-lsp [name]
                    +--rw ingress
                    |  +--rw config
                    |  |  +--rw interface?        -> /oc-if:interfaces/interface/name
                    |  |  +--rw subinterface?     -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                    |  |  +--rw payload-type?     identityref
                    |  |  +--rw metric?           uint8
                    |  +--ro state
                    |     +--ro interface?        -> /oc-if:interfaces/interface/name
                    |     +--ro subinterface?     -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                    |     +--ro payload-type?     identityref
                    |     +--ro metric?           uint8
                    +--rw transit
                    |  +--rw config
                    |  |  +--rw interface?        -> /oc-if:interfaces/interface/name
                    |  |  +--rw subinterface?     -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                    |  |  +--rw payload-type?     identityref
                    |  |  +--rw metric?           uint8
                    |  +--ro state
                    |     +--ro interface?        -> /oc-if:interfaces/interface/name
                    |     +--ro subinterface?     -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                    |     +--ro payload-type?     identityref
                    |     +--ro metric?           uint8
                    +--rw egress
                       +--rw config
                       |  +--rw interface?        -> /oc-if:interfaces/interface/name
                       |  +--rw subinterface?     -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                       |  +--rw payload-type?     identityref
                       |  +--rw metric?           uint8
                       +--ro state
                          +--ro interface?        -> /oc-if:interfaces/interface/name
                          +--ro subinterface?     -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
                          +--ro payload-type?     identityref
                          +--ro metric?           uint8 

Platform Implementations

  • Arista: https://www.arista.com/en/um-eos/eos-mpls-commands#xx1141474 CLI configuration: mpls static top-label top_tag[ bgp peer [peer IP]] [DEST_INTF] NEXTHOP_ADDR ACTION [PRIORITY]

Shashank-arista avatar Dec 18 '23 07:12 Shashank-arista

No major YANG version changes in commit e6ab4f0772a1b9094268aae864c50ceb7a1e950a

OpenConfigBot avatar Dec 18 '23 07:12 OpenConfigBot

JunOS static-label-switched-path supports options for setting the next hop as an interface, and setting metric. There is no support for payload-type.

Cisco XROS static lsp configuration supports interface as next hop. It does not appear to support metric or payload-type.

So based on three references (EOS as submitted and XROS and JunOS), it seems we have at least two which support metric and nexthop, but only Arista has a concept of 'payload-type'.

Why is payload-type needed?

dplore avatar Feb 15 '24 19:02 dplore

@Shashank-arista ping for any comments, especially regarding payload type.

dplore avatar Mar 19 '24 16:03 dplore

/gcbrun

dplore avatar Mar 22 '24 20:03 dplore

@Shashank-arista ping for any comments, especially regarding payload type.

Hi @dplore, Sorry for the delay in getting back on this. I tried to investigate more on payload-type requirement. Arista CLI needs a payload-type mandatorily, although today most of hardware platforms depend on auto-decide for inferring it. But still, there is a use case where payload-type would be necessary/used on a certain platform where we would need to skip applying egress ACLs for certain labels which relies on payload-type for the functionality.

[no] mpls static top-label [ intf ] { { swap-label } | { pop [ payload-type { ipv4 | ipv6 } [ access-list bypass ] ] } } [ metric ]

So, it seems payload-type is something not a mandatory attribute but would still be required in certain specific scenario.

Shashank-arista avatar Mar 27 '24 16:03 Shashank-arista

/gcbrun

wenovus avatar Apr 03 '24 18:04 wenovus

@Shashank-arista ping for any comments, especially regarding payload type.

Hi @dplore, Sorry for the delay in getting back on this. I tried to investigate more on payload-type requirement. Arista CLI needs a payload-type mandatorily, although today most of hardware platforms depend on auto-decide for inferring it. But still, there is a use case where payload-type would be necessary/used on a certain platform where we would need to skip applying egress ACLs for certain labels which relies on payload-type for the functionality.

[no] mpls static top-label [ intf ] { { swap-label } | { pop [ payload-type { ipv4 | ipv6 } [ access-list bypass ] ] } } [ metric ]

So, it seems payload-type is something not a mandatory attribute but would still be required in certain specific scenario.

Ok. In this scenario since we haven't identified at least 2 vendors that support payload type, nor the intent to add a payload type, nor specific operational use cases I suggest the payload type be removed from the OC model. It could added via an Arista specific yang augment.

dplore avatar Apr 05 '24 05:04 dplore

@Shashank-arista ping for any comments, especially regarding payload type.

Hi @dplore, Sorry for the delay in getting back on this. I tried to investigate more on payload-type requirement. Arista CLI needs a payload-type mandatorily, although today most of hardware platforms depend on auto-decide for inferring it. But still, there is a use case where payload-type would be necessary/used on a certain platform where we would need to skip applying egress ACLs for certain labels which relies on payload-type for the functionality. [no] mpls static top-label [ intf ] { { swap-label } | { pop [ payload-type { ipv4 | ipv6 } [ access-list bypass ] ] } } [ metric ] So, it seems payload-type is something not a mandatory attribute but would still be required in certain specific scenario.

Ok. In this scenario since we haven't identified at least 2 vendors that support payload type, nor the intent to add a payload type, nor specific operational use cases I suggest the payload type be removed from the OC model. It could added via an Arista specific yang augment.

Sure, @dplore. I have updated the pull request by removing the payload type related changes from OC model. Please review, thanks.

Shashank-arista avatar Apr 05 '24 16:04 Shashank-arista

/gcbrun

dplore avatar Apr 10 '24 00:04 dplore