cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
964
Views
5
Helpful
6
Replies
patoh
Beginner

testing telemetry on xrv9k 6.6.3

Hello All,

I'm interested to know if anyone is running telegraf with cisco_telemetry_gnmi plugin. I run into multiple issues (not much docs available online) for which I might open separate discussion later.

Currently I would like to know if anyone is using openconfig models to define data which should be streamed. I tested XR native models which work fine, but for openconfig I can only see Sensor Path State: Not Resolved.

 

example sensors configured in telegraf config (i'm using dial-in):

 

  origin = "openconfig-bgp"
  path = "/bgp/neighbors/neighbor/state"

  origin = "openconfig-bgp"
  path = "/bgp/neighbors/neighbor/afi-safis/afi-safi/state"

i verified paths ^ with pyang tools against models in https://github.com/YangModels/yang/tree/master/vendor/cisco/xr/663 and I also downloaded models from device itself and run same test, all showed that path should be ok.

 

but same sensor path state is shown if I configure sensor via cli on device:

RP/0/RP0/CPU0:r3-xr663#sh run telemetry model-driven 
telemetry model-driven
 destination-group COLLECT
  address-family ipv4 11.255.0.100 port 50000
   encoding self-describing-gpb
   protocol udp packetsize 1000
  !
 !
 sensor-group OC-BGP
  sensor-path openconfig-bgp:bgp/neighbors/neighbor/state
 !
 subscription SUBS
  sensor-group-id OC-BGP sample-interval 30000
 !
!
RP/0/RP0/CPU0:r3-xr663#show telemetry model-driven subscription SUBS internal 
Subscription:  SUBS
-------------
  State:       NA
  Sensor groups:
  Id: OC-BGP
    Sample Interval:      30000 ms
    Sensor Path:          openconfig-bgp:bgp/neighbors/neighbor/state
    Sensor Path State:    Not Resolved

am I doing something wrong/missing something? or openconfig models are not supported yet?

thanks

 

1 ACCEPTED SOLUTION

Accepted Solutions

I double checked and openconfig-bgp has been deprecated since 6.4/6.5, instead you need to use openconfig-network-instance or Cisco-IOS-XR-ipv4-bgp-cfg.

 

Examples for openconfig-network-instance model
  https://github.com/nleiva/xroc/blob/master/example/ipv6/bgp/README.md
  https://developer.cisco.com/codeexchange/github/repo/nleiva/xroc/

Examples for  Cisco-IOS-XR-ipv4-bgp-cfg model
  https://community.cisco.com/t5/yang-development-kit-ydk/sample-apps-for-xr-bgp-using-crud-gnmi/td-p/3905372
  https://community.cisco.com/t5/yang-development-kit-ydk/bd-p/5475j-disc-dev-net-ydk

 

 

CSCvs20355

openconfig-bgp yang model was deprecated since r641/651 (DDTS CSCvh11352)

 

<B>Symptom:</B>
Programmability Configuration Guide for Cisco ASR 9000 for 6.4, 6.5, 6.6 versions include examples where openconfig-bgp yang model is used which are not true for these versions.

Place#1
###################
Using standard YANG tools, get the configuration using the NETCONF <get-config> operation in YANG format.

<get-config>
<source>
<running/>
</source>
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<bgp xmlns="http://openconfig.net/yang/bgp">
</get-config>
###################
comment: <bgp xmlns="http://openconfig.net/yang/bgp"> means that openconfig-bgp yang model is used. However it is not supported in this version.

Place#2
########################
Change the configuration <edit-config> operation.
<edit-config>
<target>
<candidate/>
</target>
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<bgp xmlns="http://openconfig.net/yang/bgp">
<global>
<config>
<as xc:operation="delete">1000</as>
</config>
</global>
</bgp>
</config>
</edit-config>
#########################
comment: <bgp xmlns="http://openconfig.net/yang/bgp"> means that openconfig-bgp yang model is used. However it is not supported in this version.


These examples should be removed OR modified for openconfig-network-instance yang model

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-4/programmability/configuration/guide/b-programmability-cg-asr9000-64x/b-programmability-cg-asr9000-64x_chapter_0100.html#id_21439

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-5/programmability/configuration/guide/b-programmability-cg-asr9000-65x/b-programmability-cg-asr9000-65x_chapter_0100.html#id_21439

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-6/programmability/configuration/guide/b-programmability-cg-asr9000-66x/b-programmability-cg-asr9000-66x_chapter_0100.html#id_21439


The same situation is for ncs540, ncs5000, ncs5500, crs and xrv9000 platforms

<B>Conditions:</B>

<B>Workaround:</B>

<B>Further Problem Description:</B>

 

 

 

View solution in original post

6 REPLIES 6
smilstea
Cisco Employee

You can use the below guide to check on the router if the yang model exists in the software.

 

https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-xr-software/213339-find-yang-models-in-cisco-ios-xr-softwar.html

 

Sam

Hi @smilstea ,

 

thanks for the link, but in my original message I mentioned that I already check path defined in telegraf config against yang/vendor/cisco/xr/663 repo and also models downloaded directly from router, so I assume configured path should be fine.

-------------
  State:       ACTIVE
  Sensor groups:
  Id: GNMI__12475398976298307469_0
    Sample Interval:      30000 ms
    Sensor Path:          openconfig-bgp:bgp/neighbors/neighbor/state
    Sensor Path State:    Not Resolved
  Id: GNMI__12475398976298307469_1
    Sample Interval:      30000 ms
    Sensor Path:          Cisco-IOS-XR-clns-isis-oper:isis/instances/instance/neighbor-summaries
    Sensor Path State:    Resolved
[r3-xr663:/pkg/yang]$ ls -l | egrep "(openconfig-bgp|clns-isis-oper)\.yang"
lrwxrwxrwx. 1 root root 87 Feb 10 17:50 Cisco-IOS-XR-clns-isis-oper.yang -> /opt/cisco/XR/packages/xrv9k-isis-2.2.0.0-r663/rp/yang/Cisco-IOS-XR-clns-isis-oper.yang
lrwxrwxrwx. 1 root root 74 Feb 10 17:50 openconfig-bgp.yang -> /opt/cisco/XR/packages/xrv9k-mgbl-3.0.0.0-r663/rp/yang/openconfig-bgp.yan

bgp oc models downloaded from router:

# ls -lh
total 140K
-rwxr-xr-x 1 root root  13K Mar  4 15:59 openconfig-bgp-common-multiprotocol.yang
-rwxr-xr-x 1 root root 4,8K Mar  4 15:59 openconfig-bgp-common-structure.yang
-rwxr-xr-x 1 root root  18K Mar  4 15:59 openconfig-bgp-common.yang
-rwxr-xr-x 1 root root  11K Mar  4 15:59 openconfig-bgp-global.yang
-rwxr-xr-x 1 root root  18K Mar  4 15:59 openconfig-bgp-neighbor.yang
-rwxr-xr-x 1 root root 6,6K Mar  4 15:59 openconfig-bgp-peer-group.yang
-rwxr-xr-x 1 root root  29K Mar  4 15:59 openconfig-bgp-policy.yang
-rwxr-xr-x 1 root root  18K Mar  4 15:59 openconfig-bgp-types.yang
-rwxr-xr-x 1 root root 3,3K Mar  4 15:59 openconfig-bgp.yang

path checked with pyang:

# pyang -f tree openconfig-bgp.yang --tree-path=/bgp/neighbors/neighbor/state
openconfig-bgp.yang:11: error: module "openconfig-extensions" not found in search path
openconfig-bgp-common.yang:9: error: module "openconfig-routing-policy" not found in search path
openconfig-bgp-neighbor.yang:12: error: module "openconfig-yang-types" not found in search path
module: openconfig-bgp
  +--rw bgp
     +--rw neighbors
        +--rw neighbor* [neighbor-address]
           +--ro state
              +--ro peer-group?                -> ../../../../peer-groups/peer-group/peer-group-name
              +--ro neighbor-address?          oc-inet:ip-address
              +--ro enabled?                   boolean
              +--ro peer-as?                   oc-inet:as-number
              +--ro local-as?                  oc-inet:as-number
              +--ro peer-type?                 oc-bgp-types:peer-type
              +--ro auth-password?             oc-types:routing-password
              +--ro remove-private-as?         oc-bgp-types:remove-private-as-option
              +--ro route-flap-damping?        boolean
              +--ro send-community?            oc-bgp-types:community-type
              +--ro description?               string
              +--ro session-state?             enumeration
              +--ro last-established?          oc-types:timeticks64
              +--ro established-transitions?   oc-yang:counter64
              +--ro supported-capabilities*    identityref
              +--ro messages
              |  +--ro sent
              |  |  +--ro UPDATE?         uint64
              |  |  +--ro NOTIFICATION?   uint64
              |  +--ro received
              |     +--ro UPDATE?         uint64
              |     +--ro NOTIFICATION?   uint64
              +--ro queues
              |  +--ro input?    uint32
              |  +--ro output?   uint32
              +--ro dynamically-configured?    boolean

i'm not really sure what to check next.

Here is an example, the formatting is wonky for the cat output though so ill try to snip it down and highlight the values:

 

RP/0/RSP0/CPU0:ASR9010-B#show telemetry model-driven subscription MPLS
Thu Mar 5 12:39:39.397 CST
Subscription: MPLS
-------------
State: NOT ACTIVE
Sensor groups:
Id: MPLS
Sample Interval: 30000 ms
Sensor Path: openconfig-mpls:mpls/lsps/constrained-path
Sensor Path State: Resolved

Destination Groups:
Group Id: CALO
Destination IP: 172.18.104.30
Destination Port: 57500
Encoding: self-describing-gpb
Transport: tcp
State: Not Active
No TLS

Collection Groups:
------------------
No active collection groups

RP/0/RSP0/CPU0:ASR9010-B#run
Thu Mar 5 12:39:45.547 CST

[xr-vm_node0_RSP0_CPU0:~]$cat /pkg/yang/openconfig-mpls.yang
module openconfig-mpls {

yang-version "1";

// namespace
namespace "http://openconfig.net/yang/mpls";

prefix "mpls";


// import some basic types
import openconfig-mpls-types { prefix mplst; }
import openconfig-mpls-rsvp { prefix rsvp; }
import openconfig-mpls-sr { prefix sr; }
import openconfig-mpls-ldp { prefix ldp; }
import openconfig-types { prefix oc-types; }
import openconfig-interfaces { prefix ocif; }
import openconfig-extensions { prefix oc-ext; }

// include submodules
include openconfig-mpls-te;
include openconfig-mpls-igp;
include openconfig-mpls-static;


// meta
organization "OpenConfig working group";

contact
"OpenConfig working group
netopenconfig@googlegroups.com";

description
"This module provides data definitions for configuration of
Multiprotocol Label Switching (MPLS) and associated protocols for
signaling and traffic engineering.

RFC 3031: Multiprotocol Label Switching Architecture

The MPLS / TE data model consists of several modules and
submodules as shown below. The top-level MPLS module describes
the overall framework. Three types of LSPs are supported:

i) traffic-engineered (or constrained-path)

ii) IGP-congruent (LSPs that follow the IGP path)

iii) static LSPs which are not signaled

The structure of each of these LSP configurations is defined in
corresponding submodules. Companion modules define the relevant
configuration and operational data specific to key signaling
protocols used in operational practice.


+-------+
+---------------->| MPLS |<--------------+
| +-------+ |
| ^ |
| | |
+----+-----+ +--------+-------+ +-----+-----+
| TE LSPs | | IGP-based LSPs | |static LSPs|
| | | | | |
+----------+ +----------------+ +-----------+
^ ^ ^ ^
| +----------------+ | +--------+
| | | |
| +------+ +-+---+-+ +--+--+
+---+ RSVP | |SEGMENT| | LDP |
+------+ |ROUTING| +-----+
+-------+
";

oc-ext:openconfig-version "0.2.1";

revision "2015-11-05" {
description
"Initial public release of MPLS models";
reference "0.2.1";
}

revision "2015-10-14" {
description
"Work in progress";
reference "0.2.0";
}

// feature statements

// identity statements


// grouping statements

grouping mpls-admin-group_config {
description
"configuration data for MPLS link admin groups";

leaf admin-group-name {
type string;
description
"name for mpls admin-group";
}

leaf bit-position {
type uint32;
description
"bit-position value for mpls admin-group. The value
for the admin group is an integer that represents one
of the bit positions in the admin-group bitmask. Values
between 0 and 31 are interpreted as the original limit
of 32 admin groups. Values >=32 are interpreted as
extended admin group values as per RFC7308.";
}

}

grouping mpls-admin-groups-top {

description
"top-level mpls admin-groups config
and state containers";

container mpls-admin-groups {
description
"Top-level container for admin-groups configuration
and state";

list admin-group {
key admin-group-name;
description
"configuration of value to name mapping
for mpls affinities/admin-groups";

leaf admin-group-name {
type leafref {
path "../mpls:config/mpls:admin-group-name";
}
description
"name for mpls admin-group";
}
<snip>
container mpls {
presence "
top-level container for MPLS config and operational
state";

description
"Anchor point for mpls configuration and operational
data";

container global {
// entropy label support, label ranges will be added here.
description
"general mpls configuration applicable to any
type of LSP and signaling protocol - label ranges,
entropy label supportmay be added here";
uses mpls-global-top;
uses mpls-interfaces-top;
}

container te-global-attributes {
description
"traffic-engineering global attributes";
uses mpls-te-srlg-top;
uses mpls-te-igp-flooding-bandwidth;
uses mpls-admin-groups-top;
uses mpls-te-lsp-timers;
}

container te-interface-attributes {
description
"traffic engineering attributes specific
for interfaces";
uses te-interface-attributes-top;
}

container signaling-protocols {
description
"top-level signaling protocol configuration";

uses rsvp:rsvp-global;
uses sr:sr-global;
uses ldp:ldp-global;
}

container lsps {
description
"LSP definitions and configuration";

container constrained-path {
description
"traffic-engineered LSPs supporting different
path computation and signaling methods";
uses explicit-paths_top;
uses te-tunnels_top;
}

container unconstrained-path {
description
"LSPs that use the IGP-determined path, i.e., non
traffic-engineered, or non constrained-path";

uses igp-lsp-common;
uses igp-lsp-setup;
}

container static-lsps {
description
"statically configured LSPs, without dynamic
signaling";

uses static-lsp-main;
}
}
}

// augment statements

// rpc statements

// notification statements
}
[xr-vm_node0_RSP0_CPU0:~]$

 

 

What I did notice when researching is that for instance you can have a sensor-path like below:

Sensor Path: openconfig-mpls:mpls/lsps/constrained-path/tunnel
Sensor Path State: Resolved

 

The use statement as as defined in the beginning of the file is that we can get functions from other mpls yang models.

 

Here is a snippet from the mpls-te yang model.

 

grouping te-tunnels_top {
description
"Top level grouping for TE tunnels";

list tunnel {
key "name type";
description
"List of TE tunnels";

leaf name {
type leafref {
path "../config/name";
require-instance true;
}
description
"The tunnel name";
}

leaf type {
type leafref {
path "../config/type";
require-instance true;
}
description
"The tunnel type, p2p or p2mp.";
}

container config {
description
"Configuration parameters related to TE tunnels:";
uses te-global-tunnel_config;
}

container state {
config false;
description
"State parameters related to TE tunnels";
uses te-global-tunnel_config;
uses te-tunnel_state;
}

uses te-tunnel-bandwidth_top;
uses te-tunnel-p2p_top;
// TODO - add the p2mp configuration
}
}

 

 

Sam

hellos @smilstea ,

thanks for trying to help.

but to be honest I got lost in your last reply, not sure what were you trying to say.

As I'm mentioned I'm pretty confident that defined sensor path is correct but I have no idea why xrv9k is not resolving it.

 

I tried to used mpls sensor path which you used in your example with GNMI plugin but result was the same Not Resolved

Subscription:  GNMI__2212871179572032173
-------------
  State:       ACTIVE
  Sensor groups:
  Id: GNMI__2212871179572032173_0
    Sample Interval:      30000 ms
    Sensor Path:          openconfig-bgp:bgp/neighbors/neighbor/state
    Sensor Path State:    Not Resolved
  Id: GNMI__2212871179572032173_1
    Sample Interval:      30000 ms
    Sensor Path:          openconfig-mpls:mpls/lsps/constrained-path
    Sensor Path State:    Not Resolved

trying dial-out configuration did not help either:

RP/0/RP0/CPU0:r3-xr663#sh run telemetry model-driven 
Thu Mar  5 19:52:57.468 UTC
telemetry model-driven
 destination-group COLLECT
  address-family ipv4 11.255.0.100 port 50000
   encoding self-describing-gpb
   protocol udp
 !
 sensor-group OC-MPLS
  sensor-path openconfig-mpls:mpls/lsps/constrained-path
 !
 subscription SUBS
  sensor-group-id OC-MPLS sample-interval 30000
!
RP/0/RP0/CPU0:r3-xr663#sh telemetry model-driven subscription SUBS
Thu Mar  5 19:53:08.329 UTC
Subscription:  SUBS
-------------
  State:       NA
  Sensor groups:
  Id: OC-MPLS
    Sample Interval:      30000 ms
    Sensor Path:          openconfig-mpls:mpls/lsps/constrained-path
    Sensor Path State:    Not Resolved

and downloading mpls oc models directly from router and checking path with pyang:

$ pyang -f tree openconfig-mpls.yang --tree-path=/mpls/lsps/constrained-path --tree-depth=4
openconfig-mpls.yang:18: error: module "openconfig-segment-routing" not found in search path
module: openconfig-mpls
  +--rw mpls
     +--rw lsps
        +--rw constrained-path
           +--rw named-explicit-paths
           |     ...
           +--rw tunnels
                 ...

everything looks fine, except sensor path is still Not Resolved

 

I double checked and openconfig-bgp has been deprecated since 6.4/6.5, instead you need to use openconfig-network-instance or Cisco-IOS-XR-ipv4-bgp-cfg.

 

Examples for openconfig-network-instance model
  https://github.com/nleiva/xroc/blob/master/example/ipv6/bgp/README.md
  https://developer.cisco.com/codeexchange/github/repo/nleiva/xroc/

Examples for  Cisco-IOS-XR-ipv4-bgp-cfg model
  https://community.cisco.com/t5/yang-development-kit-ydk/sample-apps-for-xr-bgp-using-crud-gnmi/td-p/3905372
  https://community.cisco.com/t5/yang-development-kit-ydk/bd-p/5475j-disc-dev-net-ydk

 

 

CSCvs20355

openconfig-bgp yang model was deprecated since r641/651 (DDTS CSCvh11352)

 

<B>Symptom:</B>
Programmability Configuration Guide for Cisco ASR 9000 for 6.4, 6.5, 6.6 versions include examples where openconfig-bgp yang model is used which are not true for these versions.

Place#1
###################
Using standard YANG tools, get the configuration using the NETCONF <get-config> operation in YANG format.

<get-config>
<source>
<running/>
</source>
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<bgp xmlns="http://openconfig.net/yang/bgp">
</get-config>
###################
comment: <bgp xmlns="http://openconfig.net/yang/bgp"> means that openconfig-bgp yang model is used. However it is not supported in this version.

Place#2
########################
Change the configuration <edit-config> operation.
<edit-config>
<target>
<candidate/>
</target>
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<bgp xmlns="http://openconfig.net/yang/bgp">
<global>
<config>
<as xc:operation="delete">1000</as>
</config>
</global>
</bgp>
</config>
</edit-config>
#########################
comment: <bgp xmlns="http://openconfig.net/yang/bgp"> means that openconfig-bgp yang model is used. However it is not supported in this version.


These examples should be removed OR modified for openconfig-network-instance yang model

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-4/programmability/configuration/guide/b-programmability-cg-asr9000-64x/b-programmability-cg-asr9000-64x_chapter_0100.html#id_21439

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-5/programmability/configuration/guide/b-programmability-cg-asr9000-65x/b-programmability-cg-asr9000-65x_chapter_0100.html#id_21439

https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-6/programmability/configuration/guide/b-programmability-cg-asr9000-66x/b-programmability-cg-asr9000-66x_chapter_0100.html#id_21439


The same situation is for ncs540, ncs5000, ncs5500, crs and xrv9000 platforms

<B>Conditions:</B>

<B>Workaround:</B>

<B>Further Problem Description:</B>

 

 

 

View solution in original post

thanks @smilstea using openconfig-network-instance.yang solved the problem

$ pyang -f tree openconfig-network-instance.yang --tree-path=/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state
module: openconfig-network-instance
  +--rw network-instances
     +--rw network-instance* [name]
        +--rw protocols
           +--rw protocol* [identifier name]
              +--rw bgp
                 +--rw neighbors
                    +--rw neighbor* [neighbor-address]
                       +--rw afi-safis
                          +--rw afi-safi* [afi-safi-name]
                             +--ro state
                                +--ro afi-safi-name?   identityref
                                +--ro enabled?         boolean
                                +--ro active?          boolean
                                +--ro prefixes
                                   +--ro received?    uint32
                                   +--ro sent?        uint32
                                   +--ro installed?   uint32

telegraf:

 [[inputs.cisco_telemetry_gnmi.subscription]]
  ## Name of the measurement that will be emitted
  name = "oc_net_bgp"
  origin = "openconfig-network-instance"
  path = "/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state"

router:

RP/0/RP0/CPU0:r3-xr663#show telemetry model-driven subscription GNMI__12325868359630825145
Subscription:  GNMI__12325868359630825145
-------------
  State:       ACTIVE
  Sensor groups:
  Id: GNMI__12325868359630825145_0
    Sample Interval:      30000 ms
    Sensor Path:          openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state
    Sensor Path State:    Resolved

data in influxdb:

> select * from oc_net_bgp limit 10
name: oc_net_bgp
time                active afi_safi_name      afi_safi_name_1    enabled host         identifier name    neighbor_address openconfig-network-instance:/network-instances/network-instance/protocols/protocol/name path                                                                                                                         prefixes/installed prefixes/received prefixes/sent source
----                ------ -------------      ---------------    ------- ----         ---------- ----    ---------------- --------------------------------------------------------------------------------------- ----                                                                                                                         ------------------ ----------------- ------------- ------
1583448807791000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.1         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3
1583448807803000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.2         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3
1583448807818000000 true   IPV4_UNICAST       IPV4_UNICAST       true    8701134596b2 BGP        ce      100.0.3.2        default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 31                 1                 5             11.0.0.3
1583448837903000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.1         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3
1583448837939000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.2         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3
1583448837973000000 true   IPV4_UNICAST       IPV4_UNICAST       true    8701134596b2 BGP        ce      100.0.3.2        default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 31                 1                 5             11.0.0.3
1583448868010000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.1         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3
1583448868016000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.2         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3
1583448868046000000 true   IPV4_UNICAST       IPV4_UNICAST       true    8701134596b2 BGP        ce      100.0.3.2        default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 31                 1                 5             11.0.0.3
1583448898085000000 true   L3VPN_IPV4_UNICAST L3VPN_IPV4_UNICAST true    8701134596b2 BGP        default 11.0.0.1         default                                                                                 openconfig-network-instance:/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi 1                  3                 1             11.0.0.3

by opening netconf and checking capabilities i can see that openconfig-bgp and mpls are not listed, probably should have started here :)

$ ssh cisco@r3 -s netconf | egrep "openconfig-bgp|openconfig-mpls|openconfig-network"
Password: 
  <capability>http://cisco.com/ns/yang/cisco-xr-openconfig-network-instance-deviations?module=cisco-xr-openconfig-network-instance-deviations&amp;revision=2017-10-16</capability>
  <capability>http://cisco.com/ns/yang/cisco-xr-openconfig-bgp-policy-deviations?module=cisco-xr-openconfig-bgp-policy-deviations&amp;revision=2017-02-02</capability>
  <capability>http://openconfig.net/yang/network-instance-l3?module=openconfig-network-instance-l3&amp;revision=2017-01-13</capability>
  <capability>http://openconfig.net/yang/network-instance?module=openconfig-network-instance&amp;revision=2017-01-13&amp;deviations=cisco-xr-openconfig-network-instance-deviations</capability>
  <capability>http://openconfig.net/yang/bgp-policy?module=openconfig-bgp-policy&amp;revision=2017-02-02</capability>
  <capability>http://openconfig.net/yang/bgp-types?module=openconfig-bgp-types&amp;revision=2017-02-02</capability>
  <capability>http://openconfig.net/yang/network-instance-types?module=openconfig-network-instance-types&amp;revision=2016-12-15</capability>
^C