get_device_profile_api
Retrieve a device profile that identifies its service provider role and key protocol features, enabling context-aware automation and troubleshooting in gNMI-monitored networks.
Instructions
Retrieve a comprehensive device profile summarizing the core service provider role and key protocol features for a network device.
This function queries the device using gNMI and analyzes its configuration to determine:
If MPLS is enabled (is_mpls_enabled)
If ISIS is enabled (is_isis_enabled)
If BGP L3VPN is enabled (is_bgp_l3vpn_enabled)
If the device is acting as a BGP Route Reflector (is_route_reflector)
If any non-default VPN/VRF has BGP IPv4 Unicast enabled (has_vpn_ipv4_unicast_bgp)
The overall device role (role): PE, P, RR, CE, or IGP-only
The resulting profile is essential for automation, troubleshooting, and intent-based operations in service provider networks. It allows higher-level systems (including LLMs) to:
Dynamically adjust what data to query (e.g., only look for VPNs on PE routers, ignore VPNs on P routers, avoid interface queries in VPNs on RRs, etc.)
Make topology-aware decisions and recommendations
Filter or target operational commands based on device function
Provide context-aware diagnostics and explanations
Example output for a PE device: { "is_mpls_enabled": true, "is_isis_enabled": true, "is_bgp_l3vpn_enabled": true, "is_route_reflector": false, "has_vpn_ipv4_unicast_bgp": true, "role": "PE" }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| device_name | Yes | Name of the device in inventory |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nos | Yes | Supported Network Operating Systems | |
| data | No | ||
| status | Yes | Enumeration for network operation status values. Provides type safety and prevents typos when setting or checking operation status in NetworkOperationResult objects. | |
| metadata | No | ||
| ip_address | Yes | ||
| device_name | Yes | ||
| error_response | No | ||
| operation_type | Yes | ||
| feature_not_found_response | No |