Both OpenDaylight (as of Beryllium) and Cisco IOS XR (as of 6.x) now support the OpenConfig YANG models (for BGP both ODL and XR support the 2015-10-09 revision).
In this post I will show how to create a BGP session from ODL to XR using the OpenConfig YANG models. ODL will be configured using RESTCONF. XR will be configured using RESTCONF to ODL and NETCONF from ODL to XR (but equally you could use NETCONF, or for some platforms RESTCONF, direct to XR).
Note that this should all work perfectly if you're using XR 6.2 and ODL Boron.
However if you are using an older version of XR then you will be unable to create BGP configuration from scratch or to add the first neighbor (re-configuring BGP and/or adding subsequent neighbors will be fine however). This is due to an issue with XR automatically deleting non-presence containers (valid for the running config, but not for the candidate datastore - hence now fixed in the candidate datastore in XR 6.2 and above).
Likewise if you are using ODL Carbon, and if you use separate directories for XR and ODL's models (by using the schema-cache-directory parameter when mounting XR) then ODL will be unable to access XR's openconfig-bgp model. This is because Carbon is stricter in enforcing the YANG 1.0 / YANG 1.1 difference around "require-instance" statements within leafrefs. ODL's own copy of email@example.com is modified to work around this issue (and another issue with leafref). You can work around this by getting a copy of firstname.lastname@example.org, modifying the yang-version statement to be "1.1" instead of "1", and then putting this in the XR cache directory before mounting XR (or by using ODL's modified version!).
First off ODL needs to be running the odl-bgpcep-bgp, odl-netconf-all, odl-restconf-all and odl-netconf-connector-all features.
XR then needs to be configured as a NETCONF server. So you'll need to have configured:
ssh server v2
ssh server netconf vrf default
netconf-yang agent ssh
(and you'll need to have done "crypto key generate rsa" from the admin mode)
You'll also have to have mounted XR from ODL using NETCONF (see other blog posts for that).
In the below I'll assume that ODL is running on the localhost and that XR has been mounted as "XR".
Hello Cisco Team, We are doing the BW R23 interop test now, and now I have a problem about the SCA feature:Now the SCA is not working correctly:Step1) DUT send Line Seize subscribe for appearance-index=1, Server response 200OK, and Notify line-seize ...
I have enabled task routing in UCCE/Finesse 12. For the time being, operators have to select their readiness status inside the default task gadget. I would like to move the status selector above, like this: Is this possible? Than...