Configure Dial-out Mode
In a dial-out mode, the router initiates a session to the destinations based on the subscription.
All 64-bit IOS XR platforms (except for NCS 6000 series routers) support gRPC and TCP protocols. All 32-bit IOS XR platforms support only TCP.
For more information about the dial-out mode, see Dial-out Mode.
The process to configure a dial-out mode involves:
Create a Destination Group
The destination group specifies the destination address, port, encoding and transport that the router uses to send out telemetry data.
-
Identify the destination address, port, transport, and encoding format.
-
Create a destination group. Router(config)#telemetry model-driven Router(config-model-driven)#destination-group <group-name> Router(config-model-driven-dest)#address family ipv4 <IP-address> port <port-number> Router(config-model-driven-dest-addr)#encoding <encoding-format> Router(config-model-driven-dest-addr)#protocol <transport> Router(config-model-driven-dest-addr)#commit
Example: Destination Group for TCP Dial-out
DGroup1
created for TCP dial-out configuration with
key-value Google Protocol Buffers (also called self-describing-gpb) encoding:
Router(config)#telemetry model-driven
Router(config-model-driven)#destination-group DGroup1
Router(config-model-driven-dest)#address family ipv4 172.0.0.0 port 5432
Router(config-model-driven-dest-addr)#encoding self-describing-gpb
Router(config-model-driven-dest-addr)#protocol tcp
Router(config-model-driven-dest-addr)#commit
Create a Sensor Group
The sensor-group specifies a list of YANG models that are to be streamed.
-
Identify the sensor path for XR YANG model.
-
Create a sensor group. Router(config)#telemetry model-driven Router(config-model-driven)#sensor-group <group-name> Router(config-model-driven-snsr-grp)# sensor-path <XR YANG model> Router(config-model-driven-snsr-grp)# commit
Example: Sensor Group for Dial-out
Note |
gRPC is supported in only 64-bit platforms. |
SGroup1
created for dial-out configuration with the
YANG model for interface statistics:
Router(config)#telemetry model-driven
Router(config-model-driven)#sensor-group SGroup1
Router(config-model-driven-snsr-grp)# sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters
Router(config-model-driven-snsr-grp)# commit
What to Do Next:
Create a subscription.Create a Subscription
The subscription associates a destination-group with a sensor-group and sets the streaming method.
A source interface in the subscription group specifies the interface that will be used for establishing the session to stream data to the destination. If both VRF and source interface are configured, the source interface must be in the same VRF as the one specified under destination group for the session to be established.
Router(config)#telemetry model-driven
Router(config-model-driven)#subscription <subscription-name>
Router(config-model-driven-subs)#sensor-group-id <sensor-group> sample-interval <interval>
Router(config-model-driven-subs)#destination-id <destination-group>
Router(config-model-driven-subs)#source-interface <source-interface>
Router(config-mdt-subscription)#commit
Example: Subscription for Cadence-based Dial-out Configuration
The following example shows a subscriptionSub1
that is created to associate the sensor-group and destination-group, and configure an interval of 30 seconds to stream data:
Router(config)#telemetry model-driven
Router(config-model-driven)#subscription Sub1
Router(config-model-driven-subs)#sensor-group-id SGroup1 sample-interval 30000
Router(config-model-driven-subs)#destination-id DGroup1
Router(config-mdt-subscription)# commit
Validate Dial-out Configuration
Use the following command to verify that you have correctly configured the router for dial-out.
Router#show telemetry model-driven subscription <subscription-group-name>
Example: Validation for TCP Dial-out
Router#show telemetry model-driven subscription Sub1
Thu Jul 21 15:42:27.751 UTC
Subscription: Sub1 State: ACTIVE
-------------
Sensor groups:
Id Interval(ms) State
SGroup1 30000 Resolved
Destination Groups:
Id Encoding Transport State Port IP
DGroup1 self-describing-gpb tcp Active 5432 172.0.0.0
Example: Configure Event-driven Telemetry for LLDP
Telemetry supports NETCONF event notifications where the NETCONF client is configured to receive event notifications from
a NETCONF server through a subscription. The NETCONF client must subscribe using a create-subscription
request. Currently, only the events from Link Layer Discovery Protocol (LLDP) is supported. These event notifications are
sent until either the NETCONF session or the subscription is terminated.
Note |
Configuring a sensor group and a subscription is not required for receiving NETCONF notifications. While sensor path and subscription
configurations are required for receiving telemetry events, NETCONF |
-
Enable NETCONF agent and SSH sub system. ssh server netconf netconf-yang agent ssh
-
Enable model-driven telemetry. telemetry model-driven
-
Enable LLDP. lldp
This example shows event-driven telemetry fo LLDP configuration data.
- Create a destination group.
grpc port 56782 address-family ipv4 ! telemetry model-driven destination-group <destination-udp> address-family ipv4 <client-ip>1 port <udp port num> encoding self-describing-gpb protocol udp ! ! destination-group <destination-tcp> address-family ipv4 <client-ip> port <tcp port num> encoding gpb protocol tcp ! destination-group <destination-grpc> address-family ipv4 <grpc client ip>port <grpc port num> encoding self-describing-gpb protocol grpc no-tls
- Create a sensor group.
sensor-group <sensor-group-name> sensor-path Cisco-IOS-XR-ethernet-lldp-oper:lldp/global-lldp/lldp-info sensor-path Cisco-IOS-XR-ethernet-lldp-oper:lldp/nodes/node/interfaces/interface sensor-path Cisco-IOS-XR-ethernet-lldp-oper:lldp/nodes/node/neighbors/details/detail !
- Create a subscription.
subscription udp-out sensor-group-id <sensor-group-name> sample-interval 0 destination-id <destination-udp> ! subscription <subscription-name> sensor-group-id <sensor-group-name> sample-interval 0 destination-id <destination-tcp> subscription <subscription-name> sensor-group-id <sensor-group-name> sample-interval 0 ! netconf-yang agent ssh !
- Set the notification to stream data when an event occurs.
Router(config-lldp)#timer 12 Router(config-lldp)#commit Router(config-lldp)#holdtime 150 Router (config-lldp)#commit Router (config-lldp)#exit #506 <?xml version="1.0"?> <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <eventTime>Date-and-Time</eventTime> <lldp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ethernet-lldp-oper"> <global-lldp> <lldp-info> <chassis-id>000b.1bc9.e700</chassis-id> <chassis-id-sub-type>4</chassis-id-sub-type> <system-name>ios</system-name> <timer>12</timer> <hold-time>120</hold-time> <re-init>2</re-init> </lldp-info> </global-lldp> </lldp> </notification> Ready to send a request. Paste your request or enter 'get', 'get-config', 'create-sub', or 'bye' to quit):
- Validate response received from NETCONF agent.
#506 <?xml version="1.0"?> <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <eventTime>Date-and-Time</eventTime> <lldp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ethernet-lldp-oper"> <global-lldp> <lldp-info> <chassis-id>000b.1bc9.e700</chassis-id> <chassis-id-sub-type>4</chassis-id-sub-type> <system-name>ios</system-name> <timer>12</timer> <hold-time>150</hold-time> <re-init>2</re-init> </lldp-info> </global-lldp> </lldp> </notification>