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.
- (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
- Arista documentation
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
Major YANG version changes in commit a69ea22646aaa56da5c1b2b6db32915f31c5e530:
Compatibility Report for commit a69ea22646aaa56da5c1b2b6db32915f31c5e530: ✅ pyangbind@6b85c2b
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 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