[INTTEST-2] Integrate testing with LINC in the regression suite Created: 28/Mar/14  Updated: 19/Oct/17  Resolved: 19/Nov/16

Status: Resolved
Project: integration-test
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement
Reporter: Robert Varga Assignee: Madhusudhan Ananderi
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All



 Description   

LINC (https://github.com/FlowForwarding/LINC-Switch) is an OpenFlow-1.3 capable switch. It also implements the OFCONFIG protocol, so it would be very beneficial if we could integrate it in the lab, such that we can test not only OF, but also OFCONFIG (which is based on NETCONF).



 Comments   
Comment by Luis Gomez [ 02/Apr/14 ]

Madhusudhan is already working in testing Netconf.

Comment by Madhusudhan Ananderi [ 02/Apr/14 ]

Hi, I have tested Netconf using docker image mentioned at https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf#Docker_image and found to be working fine.

I have started testing using LINC switch now and keep you posted if I need any help. Thanks

Comment by Madhusudhan Ananderi [ 04/Apr/14 ]

Robert,

Am able to create netconf session between libnetconf client at the controller and LINC switch(netconf server).

However, when I retrieve inventory nodes, the response could not find yang related capabilities.

GET http://localhost:8080/restconf/operational/opendaylight-inventory:nodes/

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<nodes
xmlns="urn:opendaylight:inventory">
<node>
<initial-capability
xmlns="urn:opendaylight:netconf-node-inventory">urn:ietf:params:netconf:capability:writable-running:1.0
</initial-capability>
<initial-capability
xmlns="urn:opendaylight:netconf-node-inventory">urn:ietf:params:netconf:capability:startup:1.0
</initial-capability>
<initial-capability
xmlns="urn:opendaylight:netconf-node-inventory">urn:ietf:params:netconf:base:1.1
</initial-capability>
<id>libnetconfd</id>
<connected
xmlns="urn:opendaylight:netconf-node-inventory">true
</connected>
</node>
</nodes>

When I use GET http://localhost:8080/restconf/operational/opendaylight-inventory:nodes/node/libnetconfd/yang-ext:mount, I get 400 BAD Request status code and the response is

Mount point does not contain any schema with modules.

Comment by Madhusudhan Ananderi [ 08/Apr/14 ]

1. I am able to create netconf session between client and server using LINC openflow switch. I got hello message from netconf server:

ssh -v -p 1830 -l linc -s 10.125.136.44 netconf
<?xml version="1.0" encoding="UTF-8"?><hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><capabilities><capability>urn:ietf:params:netconf:base:1.1</capability><capability>urn:ietf:params:netconf:capability:startup:1.0</capability><capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability></capabilities><session-id>3</session-id></hello>]]>]]>

2. GET request

GET http://localhost:8080/restconf/operational/opendaylight-inventory:nodes

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<nodes
xmlns="urn:opendaylight:inventory">
<node>
<initial-capability
xmlns="urn:opendaylight:netconf-node-inventory">urn:ietf:params:netconf:capability:writable-running:1.0
</initial-capability>
<initial-capability
xmlns="urn:opendaylight:netconf-node-inventory">urn:ietf:params:netconf:capability:startup:1.0
</initial-capability>
<initial-capability
xmlns="urn:opendaylight:netconf-node-inventory">urn:ietf:params:netconf:base:1.1
</initial-capability>
<id>libnetconfd</id>
<connected
xmlns="urn:opendaylight:netconf-node-inventory">true
</connected>
</node>
</nodes>

I could see the difference at this response when using netopeer server. I suspect LINC switch doesn't have support on yang modules and that's the problem in not getting yang data in the response.

3. I am currently in the process of LINC integration with Mininet, so I can get both the topology information as well as netconf configuration.

4. I would like to do the following basic netconf operations:

(a) get Netconf session details
(b) retrieve running configuration and device state configuration
(c) how to copy/delete the configuration
(d) close and kill the netconf session

I am not sure how to do it. Can someone shed some light on this?

Comment by Tomas Olvecky [ 10/Apr/14 ]

Regarding netopeer issue, I've filed CONTROLLER-306 - this is a regression as I was able to get the operational data using restconf before.
Regarding LINC, I don't have it installed (if you could create a trusted docker image that would be great) but if it does not advertise yang models via netconf-monitoring extension the data will not be available. This can be verified by increasing logging level on org.opendaylight.netconf,org.opendaylight.controller.sal.connect.netconf to TRACE and checking the hello message.
There is an improvement tracked as CONTROLLER-256 that would overcome this issue by placing the yang models on local file system. AFAIK nobody is currently working on it.

Comment by Madhusudhan Ananderi [ 11/Apr/14 ]

LINC switch doesn't support IETF netconf-monitoring. Hence it does not advertise yang models via netconf-monitoring extension and the the data will not be available.

2014-04-10 17:46:41.769 PDT [nettyThreadgroupModule$NioEventLoopGroupCloseable-6-6] DEBUG o.o.c.n.c.SimpleNetconfClientSessionListener - Client session ServerNetconfSession

{sessionId=1}

went up
2014-04-10 17:46:41.770 PDT [pool-24-thread-1] DEBUG o.o.c.s.c.n.NetconfDevice#libnetconfd - Initial capabilities []
2014-04-10 17:46:41.771 PDT [pool-24-thread-1] INFO o.o.c.s.c.n.NetconfDevice#libnetconfd - Netconf server 10.125.136.44/10.125.136.44:1830 does not support IETF Netconf Monitoring
2014-04-10 17:46:41.773 PDT [pool-24-thread-1] DEBUG o.o.c.s.c.n.NetconfDevice#libnetconfd - Trying to create schema context from []
2014-04-10 17:46:41.778 PDT [pool-24-thread-1] DEBUG o.o.c.s.c.n.NetconfDevice#libnetconfd - Client capabilities [urn:ietf:params:netconf:capability:writable-running:1.0, urn:ietf:params:netconf:capability:startup:1.0, urn:ietf:params:netconf:base:1.1]
2014-04-10 17:46:41.783 PDT [pool-24-thread-1] DEBUG o.o.c.s.c.n.NetconfDevice#libnetconfd - Update device state transaction DOM-2 putting operational data started.
2014-04-10 17:46:41.784 PDT [pool-24-thread-1] DEBUG o.o.c.s.c.n.NetconfDevice#libnetconfd - Update device state transaction DOM-2 putting operational data ended.
2014-04-10 17:46:41.787 PDT [pool-24-thread-1] DEBUG o.o.c.s.c.n.NetconfDevice#libnetconfd - Update device state transaction DOM-2 SUCCESSFUL.

LINC switch announced capabilities only for Netconf protocol, but did not announced OF-Config, nor IETF-Monitoring. In general, IETF-Monitoring is required for ODL to automatically download models from Netconf Server, otherwise YANG models are used from cache/schema

OF Config announcement (and announcements of other YANG modules) provides an information that netconf server support OF-Config (it references OF-Config YANG module), this actually triggers Netconf Connector to look up the YANG model (be it from cache/schema or via IETF-Monitoring from Netconf Device)

Comment by Luis Gomez [ 22/Sep/14 ]

LINC does not support the "netconf monitoring" feature required for netconf plugin to import yang models and generate RESTConf API.

Generated at Wed Feb 07 20:04:17 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.