BGP State Model Comparison: Nokia vs OpenConfig¶
This document provides a detailed comparison between Nokia SROS and OpenConfig BGP state models for operational monitoring and telemetry.
Overview¶
Aspect | Nokia SROS 25.7 | OpenConfig |
---|---|---|
Model Type | Vendor-specific operational state | Vendor-neutral operational state |
Primary Model | nokia-state-router-bgp.yang |
openconfig-bgp.yang |
Architecture | Submodule of main Nokia state tree | Standalone with modular imports |
Standards | Nokia SROS-specific extensions | IETF + OpenConfig standards |
Model Structure Comparison¶
Nokia BGP State Model¶
nokia-state-router-bgp (submodule)
├── belongs-to: nokia-state
├── router/
│ └── bgp/
│ ├── neighbor/ # BGP neighbor state
│ ├── group/ # BGP peer group state
│ ├── rib/ # Routing table state
│ ├── statistics/ # BGP statistics
│ └── policy/ # Applied policy state
OpenConfig BGP State Model¶
openconfig-bgp
├── bgp/
│ ├── global/ # Global BGP state
│ │ ├── state/
│ │ ├── afi-safis/
│ │ └── graceful-restart/
│ ├── neighbors/ # Neighbor state
│ │ └── neighbor[]/
│ │ ├── state/
│ │ ├── timers/
│ │ └── afi-safis/
│ └── peer-groups/ # Peer group state
│ └── peer-group[]/
Key State Categories¶
1. Global BGP State¶
Nokia SROS¶
// Path: /state/router/bgp
container bgp {
leaf router-id;
leaf local-as;
leaf admin-state;
leaf oper-state;
container statistics {
leaf total-paths;
leaf total-prefixes;
// Nokia-specific counters
}
}
OpenConfig¶
// Path: /bgp/global/state
container state {
leaf as;
leaf router-id;
leaf total-paths;
leaf total-prefixes;
// Standard operational counters
}
Key Differences: - Nokia: Includes admin-state/oper-state distinction - OpenConfig: Focuses on operational data only - Nokia: More detailed Nokia-specific statistics - OpenConfig: Standardized cross-vendor counters
2. Neighbor State¶
Nokia SROS¶
container neighbor {
list neighbor {
key "ip-address";
leaf ip-address;
leaf peer-as;
leaf admin-state;
leaf oper-state;
leaf session-state;
container statistics {
leaf messages-sent;
leaf messages-received;
leaf prefixes-received;
leaf prefixes-active;
// Nokia-specific metrics
}
}
}
OpenConfig¶
container neighbors {
list neighbor {
key "neighbor-address";
leaf neighbor-address;
container state {
leaf peer-as;
leaf session-state;
leaf established-transitions;
leaf supported-capabilities;
}
container timers {
container state {
leaf uptime;
leaf negotiated-hold-time;
}
}
}
}
Key Differences: - Nokia: Admin vs operational state separation - OpenConfig: Combined operational state view - Nokia: More granular statistics per neighbor - OpenConfig: Standardized timer information
3. Address Family (AFI/SAFI) State¶
Nokia SROS¶
container family {
list family {
key "afi safi";
leaf afi;
leaf safi;
leaf admin-state;
leaf oper-state;
container statistics {
leaf prefixes-received;
leaf prefixes-active;
leaf prefixes-sent;
}
}
}
OpenConfig¶
container afi-safis {
list afi-safi {
key "afi-safi-name";
leaf afi-safi-name;
container state {
leaf active;
}
container prefixes {
container state {
leaf received;
leaf sent;
leaf installed;
}
}
}
}
Monitoring Use Cases¶
1. Session Monitoring¶
Capability | Nokia | OpenConfig | Notes |
---|---|---|---|
Session state | ✅ Enhanced | ✅ Standard | Nokia provides admin/oper separation |
Uptime tracking | ✅ | ✅ | Both provide session uptime |
State transitions | ✅ | ✅ | OpenConfig has standardized counter |
Flap detection | ✅ Nokia-specific | ✅ Standard | Different approaches |
2. Route Monitoring¶
Capability | Nokia | OpenConfig | Notes |
---|---|---|---|
Prefix counts | ✅ Detailed | ✅ Standard | Nokia more granular breakdown |
RIB statistics | ✅ Per-table | ✅ Per-AFI | Different organization |
Best path info | ✅ | ✅ | Both support best path tracking |
Route origin | ✅ Enhanced | ✅ Standard | Nokia provides more detail |
3. Performance Metrics¶
Capability | Nokia | OpenConfig | Notes |
---|---|---|---|
Message counters | ✅ Comprehensive | ✅ Standard | Nokia more detailed |
Error tracking | ✅ Nokia-specific | ✅ Standard | Different error categorization |
Queue statistics | ✅ | ⚠️ Limited | Nokia provides more queue details |
Memory usage | ✅ | ⚠️ Limited | Nokia-specific memory tracking |
Data Collection Examples¶
Nokia SROS State Query¶
# Get BGP neighbor state
pyang -f tree --tree-path /state/router/bgp/neighbor \
nokia/bgp/nokia-state-router-bgp.yang
# Example telemetry path
/state/router[router-name="Base"]/bgp/neighbor[ip-address="192.168.1.1"]/statistics
OpenConfig State Query¶
# Get BGP neighbor state
pyang -f tree --tree-path /bgp/neighbors \
openconfig/bgp/openconfig-bgp.yang
# Example telemetry path
/bgp/neighbors/neighbor[neighbor-address="192.168.1.1"]/state
Telemetry Integration¶
Nokia SROS¶
- Protocol: gNMI, NETCONF, Nokia MDM
- Encoding: JSON, XML, GPB
- Streaming: Subscription-based with Nokia extensions
- Path Style: Nokia-specific hierarchical paths
OpenConfig¶
- Protocol: gNMI (primary), NETCONF
- Encoding: JSON, GPB (protobuf)
- Streaming: Standard gNMI subscriptions
- Path Style: OpenConfig standardized paths
Migration Considerations¶
From Nokia to OpenConfig¶
# Nokia path mapping to OpenConfig
Nokia: /state/router/bgp/neighbor[ip-address="X"]/session-state
OpenConfig: /bgp/neighbors/neighbor[neighbor-address="X"]/state/session-state
Nokia: /state/router/bgp/statistics/total-prefixes
OpenConfig: /bgp/global/state/total-prefixes
Advantages of Each Approach¶
Nokia SROS State Models¶
- ✅ Rich operational detail: More granular statistics and state information
- ✅ Admin vs operational: Clear separation of configured vs actual state
- ✅ Nokia-specific features: Access to SROS-specific BGP capabilities
- ✅ Integrated monitoring: Part of comprehensive Nokia state tree
- ❌ Vendor lock-in: Nokia-specific paths and data structures
OpenConfig State Models¶
- ✅ Vendor neutrality: Same model works across multiple vendors
- ✅ Industry standard: Widely adopted in network automation
- ✅ Simplified integration: Consistent across different vendors
- ✅ Tool ecosystem: Better tooling and community support
- ❌ Less detail: May lack vendor-specific operational insights
Recommendations¶
Use Nokia State Models When:¶
- Deep operational visibility into Nokia SROS needed
- Nokia-specific features and statistics required
- Single-vendor environment with Nokia expertise
- Advanced troubleshooting and performance analysis needed
Use OpenConfig State Models When:¶
- Multi-vendor environment requiring consistency
- Network automation across different platforms
- Integration with OpenConfig-based tools
- Industry-standard telemetry pipelines preferred
Conclusion¶
Both models serve different operational needs: - Nokia models provide deeper, SROS-specific operational visibility - OpenConfig models offer standardized, cross-vendor operational monitoring
Choose based on your operational requirements: depth vs standardization.