I got usable NETCONF ODL (0.5.2-Boron-SR2) connector with Junos (VMX 16.1r10).
1. Get yang model for Junos from https://forums.juniper.net/t5/Automation/Yang-Labs-Tools/ta-p/294320 ( https://forums.juniper.net/jnet/attachments/jnet/Automation_Scripting/591.2/1/configuration-142.yang.txt ) 2. Put it to cache/schema as configurat...@2014-11-13.yang 3. Restart ODL (I don`t sure what it`s really need, but I did it) 4. Use POSTMAN to add NetconfDevice (POST): <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type> <name>PE-1</name> <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">172.16.16.1</address> <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">830</port> <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">root</username> <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">passw0rd</password> <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only> <yang-module-capabilities xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <capability> http://xml.juniper.net/xnm/1.1/xnm?module=configuration&revision=2014-11-13 </capability> </yang-module-capabilities> <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type> <name>global-event-executor</name> </event-executor> <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type> <name>binding-osgi-broker</name> </binding-registry> <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type> <name>dom-broker</name> </dom-registry> <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type> <name>global-netconf-dispatcher</name> </client-dispatcher> <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type> <name>global-netconf-processing-executor</name> </processing-executor> <keepalive-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:scheduled-threadpool</type> <name>global-netconf-ssh-scheduled-executor</name> </keepalive-executor> </module> 4. Use POSTMAN to view Netconf topology (GET) http://192.168.5.199:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/ , device should have status "connected" with some capabilities like this: { "node-id": "PE-1", "netconf-node-topology:available-capabilities": { "available-capability": [ "urn:ietf:params:netconf:capability:confirmed-commit:1.0", "urn:ietf:params:netconf:capability:candidate:1.0", "urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0", "urn:ietf:params:netconf:capability:validate:1.0", "http://xml.juniper.net/netconf/junos/1.0", "urn:ietf:params:xml:ns:netconf:base:1.0", "urn:ietf:params:xml:ns:netconf:capability:url:1.0?protocol=http,ftp,file", "urn:ietf:params:netconf:base:1.0", "urn:ietf:params:xml:ns:netconf:capability:validate:1.0", "urn:ietf:params:xml:ns:netconf:capability:candidate:1.0", "( http://xml.juniper.net/xnm/1.1/xnm?revision=2014-11-13)configuration", "http://xml.juniper.net/dmi/system/1.0", "urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file" ] }, "netconf-node-topology:host": "172.16.16.1", "netconf-node-topology:unavailable-capabilities": {}, "netconf-node-topology:connection-status": "connected", "netconf-node-topology:port": 830 }, 5. Try to get some config portion of device via REST (Use POSTMAN: GET http://192.168.5.199:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/PE-1/yang-ext:mount/configuration:configuration/system/services ) Result: { "services": { "ssh": { "protocol-version": [ "v2" ] }, "netconf": { "ssh": { "port": 830 } } } } I also tried to use with ODL a newer yang models from Juniper ( available from https://github.com/Juniper/yang/tree/master/16.1) , configuration.yang and junos-extension.yang, but withous success. I had put it to cache/schema, add revision strings (to filenames and also inside yang file), succesfull register device with ODL - but can`t get any config data. Sad but true. Sample: root@osboxes:~/odl/cache/schema# head -21 configurat...@2017-02-20.yang /* * Copyright (c) 2016 Juniper Networks, Inc. * All rights reserved. */ module configuration { namespace "http://yang.juniper.net/yang/1.1/jc"; prefix jc; import junos-extension { prefix junos; } organization "Juniper Networks, Inc."; description "Junos YANG module for configuration hierarchies"; revision "2017-02-20" { description "Initial revision"; } root@osboxes:~/odl/cache/schema# head -19 junos-extens...@2017-02-20.yang /* * Copyright (c) 2016 Juniper Networks, Inc. * All rights reserved. */ module junos-extension { namespace "http://yang.juniper.net/yang/1.1/je"; prefix junos; organization "Juniper Networks, Inc."; description "This module contains definitions for Junos YANG extensions."; revision "2017-02-20" { description "Initial revision"; } root@osboxes:~/odl/cache/schema# <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type> <name>PE-1</name> <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">172.16.16.1</address> <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">830</port> <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">root</username> <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">passw0rd</password> <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only> <yang-module-capabilities xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <capability xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> http://yang.juniper.net/yang/1.1/je?module=junos-extension&revision=2017-02-20 </capability> <capability xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> http://yang.juniper.net/yang/1.1/jc?module=configuration&revision=2017-02-20 </capability> </yang-module-capabilities> <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type> <name>global-event-executor</name> </event-executor> <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type> <name>binding-osgi-broker</name> </binding-registry> <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type> <name>dom-broker</name> </dom-registry> <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type> <name>global-netconf-dispatcher</name> </client-dispatcher> <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type> <name>global-netconf-processing-executor</name> </processing-executor> <keepalive-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:scheduled-threadpool</type> <name>global-netconf-ssh-scheduled-executor</name> </keepalive-executor> </module>
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev