[Phase 1] Explore available YANG models (OpenConfig vs Native Arista) #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Explore and document available YANG models on Arista EOS 4.35.0F, understanding the distinction between OpenConfig and native Arista models.
Tasks
Key Questions to Answer
Expected Findings
Resources
🔬 Key Discovery: Path Prefix Matters for ON_CHANGE Subscriptions
During testing, we discovered an important difference in gNMI Subscribe behavior on cEOS:
❌ OpenConfig prefixed paths - ON_CHANGE doesn't work
✅ Native paths (without module prefix) - ON_CHANGE works!
Test Results
Subscription active, then
shutdown/no shutdownon Port-Channel1:Implications for the Orchestrator
/interfaces/...SAMPLE Mode - Always Works (Fallback)
Both path styles work with SAMPLE mode:
This can be used as a fallback for paths where ON_CHANGE isn't supported.
📍 Discovered YANG Paths: Interfaces & BGP
Interfaces
Model:
openconfig-interfaces(v3.8.0)/interfaces/interface/state/interfaces/interface[name=Ethernet1]/state/interfaces/interface[name=X]/state/oper-statusSubscribe ON_CHANGE: ✅ Works (verified state transitions: UP → DOWN → LOWER_LAYER_DOWN → UP)
BGP
Model:
openconfig-bgp(v9.9.1) +arista-bgp-augments/network-instances/network-instance[name=default]/protocols/protocol[identifier=BGP][name=BGP]/bgp/global/state.../bgp/neighbors/neighbor/state.../bgp/neighbors/neighbor[neighbor-address=10.0.1.2]/state.../neighbor[neighbor-address=X]/state/session-stateSubscribe ON_CHANGE: ✅ Works (verified: ESTABLISHED → IDLE → ACTIVE → OPENSENT → ESTABLISHED)
Key fields:
session-state,peer-as,peer-group,peer-type,neighbor-router-id,messages/received,messages/sent📍 Discovered YANG Paths: VXLAN
Model:
arista-exp-eos-vxlan(augmentsopenconfig-interfaces)Note: Arista EOS only allows one
Vxlan1interface - all VNI mappings are configured under it./interfaces/interface[name=Vxlan1]/arista-vxlan/interfaces/interface[name=Vxlan1]/arista-vxlan/state/interfaces/interface[name=Vxlan1]/arista-vxlan/vlan-to-vnis/interfaces/interface[name=Vxlan1]/arista-vxlan/vrf-to-vnisKey fields returned:
📍 Discovered YANG Paths: MLAG & EVPN
MLAG
Model:
arista-exp-eos-mlag(experimental)/arista/eos/mlag/arista/eos/mlag/configKey fields:
domain-id,local-intf,peer-address,peer-link-intf,dual-primary-action,heartbeat-peer-address⚠️ Limitation: Operational state (peer status, role, negotiation status) is NOT exposed via gNMI. Query with
--type statereturns empty. Use eAPI/CLI (show mlag) for state.EVPN
Model:
arista-exp-eos-evpn(experimental)/arista/eos/evpn/arista/eos/evpn/evpn-instancesKey fields:
name,route-distinguisher,redistribute,route-target/import,route-target/export,vlans⚠️ Limitation: Operational state (learned routes, MACs) is NOT exposed via gNMI. Query with
--type statereturns empty. Use eAPI/CLI (show bgp evpn) for state.Validation Method
✅ VXLAN Subscribe ON_CHANGE Verified
Tested: Add/remove VNI mapping → Real-time updates received including delete notifications.
📊 Final Summary
openconfig-interfacesopenconfig-bgparista-exp-eos-vxlanarista-exp-eos-mlagarista-exp-eos-evpnKey Findings
openconfig-*:prefix) for ON_CHANGE subscriptionsVxlan1interface contains all VNI mappings (L2 and L3)