public icon indicating copy to clipboard operation
public copied to clipboard

Add `gre` and `mpls` containers under next-hops aft entry state. Add `ttl` and `tos` under gre, mpls and ip-in-ip aft entry state for telemetry.

Open romeyod opened this issue 2 years ago • 4 comments

  • (M) aft/openconfig-aft-common.yang
  • (M) aft/openconfig-aft-ethernet.yang
  • (M) aft/openconfig-aft-ipv4.yang
  • (M) aft/openconfig-aft-ipv6.yang
  • (M) aft/openconfig-aft-mpls.yang
  • (M) aft/openconfig-aft-pf.yang
  • (M) aft/openconfig-aft-state-synced.yang
  • (M) aft/openconfig-aft.yang

Change Scope

  • Add gre and mpls containers under next-hops aft entry state.
  • Add ttl and tos under gre, mpls and ip-in-ip aft entry state for telemetry.
  • This change is backwards compatible

Platform Implementations

Relevant pyang output:

module: openconfig-network-instance
  +--rw network-instances
     +--rw network-instance* [name]
        +--ro afts
        |  +--ro next-hops
        |     +--ro next-hop* [index]
        |        +--ro index            -> ../state/index
        |        +--ro state
        |        |  +--ro index?                       uint64
        |        |  +--ro programmed-index?            uint64
        |        |  +--ro ip-address?                  oc-inet:ip-address
        |        |  +--ro mac-address?                 oc-yang:mac-address
        |        |  +--ro pop-top-label?               boolean
        |        |  +--ro pushed-mpls-label-stack*     oc-mplst:mpls-label
        |        |  +--ro encapsulate-header?          oc-aftt:encapsulation-header-type
        |        |  +--ro decapsulate-header?          oc-aftt:encapsulation-header-type
        |        |  +--ro origin-protocol?             identityref
        |        |  +--ro lsp-name?                    string
        |        |  +--ro counters
        |        |  |  +--ro packets-forwarded?   oc-yang:counter64
        |        |  |  +--ro octets-forwarded?    oc-yang:counter64
        |        |  +--ro vni-label?                   oc-evpn-types:evi-id
        |        |  +--ro tunnel-src-ip-address?       oc-inet:ip-address
        |        |  +--ro oc-aftni:network-instance?   oc-ni:network-instance-ref
        |        +--ro ip-in-ip
        |        |  +--ro state
        |        |     +--ro src-ip?   oc-inet:ip-address
        |        |     +--ro dst-ip?   oc-inet:ip-address
        |        |     +--ro ttl?      uint32
        |        |     +--ro tos?      uint16
        |        +--ro gre
        |        |  +--ro state
        |        |     +--ro ttl?   uint32
        |        |     +--ro tos?   uint16
        |        +--ro mpls
        |        |  +--ro state
        |        |     +--ro ttl?   uint32
        |        |     +--ro tos?   uint16
        |        +--ro interface-ref
        |           +--ro state
        |              +--ro interface?      -> /oc-if:interfaces/interface/name
        |              +--ro subinterface?   -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index 

romeyod avatar May 25 '23 20:05 romeyod

Major YANG version changes in commit a69ea22646aaa56da5c1b2b6db32915f31c5e530:

OpenConfigBot avatar May 25 '23 20:05 OpenConfigBot

Compatibility Report for commit a69ea22646aaa56da5c1b2b6db32915f31c5e530: ✅ pyangbind@6b85c2b

OpenConfigBot avatar May 25 '23 21:05 OpenConfigBot

are these new fields intended for programming or solely telemetry? It'd be good to understand this.

added some questions in-line to clarify some of the new fields.

Solely for a Telemetry based use case.

romeyod avatar May 26 '23 16:05 romeyod

@romeyod could you clarify which feature you are supporting?

Please include how one would configure this feature (using existing or new OC as required, or if not supported in OC, the relevant vendor CLI ) to demonstrate when these AFT fields would be populated.

@dplore We want to support next-hop-group state and next-hop content streaming for telemetry. For full view of the encapsulation header, streaming TTL and TOS field along with the already existing AFT state.

I did not see any existing OC configs for this. Example: https://openconfig.net/projects/models/schemadocs/yangdoc/openconfig-aft.html#mod-openconfig-aft

Arista documentation for the CLI

Example CLI config snippet:

switch(config)# nexthop-group NH-1
switch(config-nexthop-group-NH-1)# size 4
switch(config-nexthop-group-NH-1)# entry 0 tunnel-destination 10.13.4.4
switch(config-nexthop-group-NH-1)# entry 1 tunnel-destination 10.15.4.22
switch(config-nexthop-group-NH-1)# entry 2 tunnel-destination 10.15.5.37
switch(config-nexthop-group-NH-1)# show active
 nexthop-group NH-1
   size 4
   ttl 64
   entry 0 tunnel-destination 10.13.4.4
   entry 1 tunnel-destination 10.15.4.22
   entry 2 tunnel-destination 10.15.5.37
switch(config-nexthop-group-NH-1)#

Let me know if I didnt understand your query correctly. Thanks

romeyod avatar Aug 18 '23 16:08 romeyod