Hi team,


I am currently working with the OPNFV SFC team and I am currently testing the 
OpenDaylight Boron RC1 release.

The testcase I am running is the following:



 
<https://gerrit.opnfv.org/gerrit/gitweb?p=functest.git;a=tree;f=testcases/features/sfc/testcases/features/sfc;h=0431ccae49f802e5d26164a3e99365ac77c49179;hb=HEAD>
 
https://gerrit.opnfv.org/gerrit/gitweb?p=functest.git;a=tree;f=testcases/features/sfc/testcases/features/sfc;h=0431ccae49f802e5d26164a3e99365ac77c49179;hb=HEAD



This testcase is an automated version of this demo:  
<https://www.youtube.com/watch?v=QknJMX83q1k> 
https://www.youtube.com/watch?v=QknJMX83q1k

In summary, the testcase boots a client and a server instance and 2 firewall 
VNFs. One firewall blocks HTTP and the other SSH. The client tries to access 
the server instance through HTTP and SSH and by modifying the classifier we 
expect to see the right firewall being active.



To run the testcase I deploy OpenStack + ODL and I run the sfc.py script. I 
observe the following problem

- The first time I run the testcase it fails, because the HTTP is blocked while 
it should be working

- If I delete the instances/vnfds/vnfs/sfcs/classifiers and run the testcase 
again it is successful



I have captured the karaf logs and OpenFlow table flows in a successful and a 
failed run during various phases of the testcase lifetime here:  
<https://github.com/georgepar/sfc-work/tree/master/boron/netvirt-test> 
https://github.com/georgepar/sfc-work/tree/master/boron/netvirt-test



I can see that in the failed run some flows are missing when the test is 
running, specifically:



-          a flow in table=11 which does the classification and also checks if 
we are on the last hop (in our test case, checking nsi=254)



table=11, n_packets=0, n_bytes=0, nsi=254,nsp=139,in_port=6 
actions=load:0x1->NXM_NX_REG0[],move:NXM_NX_NSH_C2[]->NXM_NX_TUN_ID[0..31],resubmit(9,1)





-          and a flow in  table=1 which does the pop_nsh when the table=11 
decided that it is the last hop:



table=1, n_packets=0, n_bytes=0, 
priority=40000,nsi=254,nsp=139,reg0=0x1,in_port=9 actions=pop_nsh,goto_table:21







The only difference I see in the karaf logs  when I delete the sfc's after a 
failed run I get the following errors in the Karaf log:



2016-08-24 08:42:58,025 | INFO  | NV-SfcDTL-0      | DelegatingDataTreeListener 
      | 329 - org.opendaylight.netvirt.openstack.net-virt-sfc-impl - 
1.3.0.Boron-RC1 | onDataTreeChanged: Received Data Tree Changed ...

2016-08-24 08:42:58,025 | INFO  | n-dispatcher-120 | SfcOfRspDataListener       
      | 326 - org.opendaylight.sfc.openflow-renderer - 0.3.0.Boron-RC1 | 
SfcOfRspDataListener.onDataChanged delete RSP

2016-08-24 08:42:58,025 | INFO  | NV-SfcDTL-0      | DelegatingDataTreeListener 
      | 329 - org.opendaylight.netvirt.openstack.net-virt-sfc-impl - 
1.3.0.Boron-RC1 | onDataTreeChanged: Received Data Tree Changed Update of 
Type=DELETE for Key=KeyedInstanceIdentifier{targetType=interface 
org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath,
 
path=[org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.RenderedServicePaths,
 
org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath[key=RenderedServicePathKey
 [_name=RspName [_value=Path-blue-Path-106]]]]}

2016-08-24 08:42:58,026 | INFO  | n-dispatcher-120 | SfcOfFlowWriterImpl        
      | 326 - org.opendaylight.sfc.openflow-renderer - 0.3.0.Boron-RC1 | 
deleteFlowSet: deleting 13 flows

2016-08-24 08:43:09,948 | ERROR | p1050245083-1134 | 
SfcProviderServiceForwarderAPI   | 170 - org.opendaylight.sfc.provider - 
0.3.0.Boron-RC1 | 
org.opendaylight.sfc.provider.api.SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(SfcProviderServiceForwarderAPI.java:344):
 Rendered Service Path RspName [_value=Path-red-Path-55] does not exist

2016-08-24 08:43:09,954 | ERROR | p1050245083-1134 | 
SfcProviderServiceFunctionAPI    | 170 - org.opendaylight.sfc.provider - 
0.3.0.Boron-RC1 | 
org.opendaylight.sfc.provider.api.SfcProviderServiceFunctionAPI.deleteServicePathFromServiceFunctionState(SfcProviderServiceFunctionAPI.java:365):
 Rendered Service Path SfpName [_value=Path-red-Path-55] does not exist



while when I delete them after a successful run the logs are clean ( 
<https://github.com/georgepar/sfc-work/blob/master/boron/netvirt-test/success-test/sfc-delete-karaf.log>
 
https://github.com/georgepar/sfc-work/blob/master/boron/netvirt-test/success-test/sfc-delete-karaf.log)



Can this probably be indicating a bug in Netvirt?



Thanks,

George




George Paraskevopoulos

Software Engineer (SDN/NFV), INTRACOM-TELECOM


 + 30 210 667 7689

  <mailto:geo...@intracom-telecom.com> geo...@intracom-telecom.com


 19.7 km Markopoulou Ave 19002 Peania, Athens, Greece





The information in this e-mail message and any attachments are intended only 
for the individual or entity to whom it is addressed and may be confidential. 
If you have received this transmission in error, and you are not an intended 
recipient, be aware that any copying, disclosure, distribution or use of this 
transmission or its contents is prohibited.  INTRACOM TELECOM and the sender 
accept no liability for any loss, disruption or damage to your data or computer 
system that may occur while using data contained in, or transmitted with, this 
email. Views or opinions expressed in this message may be those of the author 
and may not necessarily represent those of INTRACOM TELECOM.





_______________________________________________
opnfv-tech-discuss mailing list
opnfv-tech-discuss@lists.opnfv.org
https://lists.opnfv.org/mailman/listinfo/opnfv-tech-discuss

Reply via email to