[VTN-78] redirect Operation fails to forward packets Created: 19/Jun/15  Updated: 19/Oct/17  Resolved: 01/Oct/15

Status: Resolved
Project: vtn
Component/s: VTN Manager
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Venkatrangan Govindarajan Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 3818

 Description   

Tried the Service Function HowTo page
https://wiki.opendaylight.org/view/VTN_How_to_Configure_Service_Function_Chaining

When attempting h12 ping h22, the ping was never responding. The same page works well with Helium distribution.

Some of the errors that were observed in the karaf.log were

************start of karaf.log error part****************
v201506150016 | default:vTerminal:Tenant2.vt_srvc1_1: vTerminal added: VTerminal[name=vt_srvc1_1,desc=vterminal for service1,faults=0,state=UNKNOWN]
2015-06-18 23:58:43,373 | INFO | Thread: default | VTNManagerImpl | 345 - org.opendaylight.vtn.manager.implementation - 0.3.0.Lithium-RC1-v201506150016 | default:vTerminal-IF:Tenant2.vt_srvc1_1.IF: Virtual interface added: VInterface[name=IF,desc=Description about IF-1,enabled,state=UNKNOWN,entityState=UNKNOWN]
2015-06-18 23:58:48,669 | INFO | Thread: default | VTNManagerImpl | 345 - org.opendaylight.vtn.manager.implementation - 0.3.0.Lithium-RC1-v201506150016 | default:vTerminal-IF:Tenant2.vt_srvc1_1.IF: Port mapping added: PortMap[config=PortMapConfig[node=OF|00:00:00:00:00:00:00:03,port=SwitchPort[name=s3-eth3,type=OF,id=3],vlan=0],connector=OF|3@OF|00:00:00:00:00:00:00:03]
2015-06-18 23:58:48,669 | INFO | Thread: default | VTNManagerImpl | 345 - org.opendaylight.vtn.manager.implementation - 0.3.0.Lithium-RC1-v201506150016 | default:vTerminal-IF:Tenant2.vt_srvc1_1.IF: Virtual interface changed: VInterface[name=IF,desc=Description about IF-1,enabled,state=DOWN,entityState=UP]
2015-06-18 23:58:48,669 | INFO | Thread: default | VTNManagerImpl | 345 - org.opendaylight.vtn.manager.implementation - 0.3.0.Lithium-RC1-v201506150016 | default:vTerminal:Tenant2.vt_srvc1_1: vTerminal changed: VTerminal[name=vt_srvc1_1,desc=vterminal for service1,faults=0,state=DOWN]
2015-06-18 23:58:54,493 | INFO | Thread: default | VTNManagerImpl | 345 - org.opendaylight.vtn.manager.implementation - 0.3.0.Lithium

                • end of karaf.log error part ***************************

When setting log level as TRACE, other logs like "Ignore the Packet from Internal Port OpenFlow:4-s4-eth3" was observed. When checking the flow entries in mininet using sudo ovs-ofctl dump-flows, Flows were seen in s1, s2 and s3. s4 had no flows installed. We will provide those logs also.



 Comments   
Comment by Shigeru Yasuda [ 19/Jun/15 ]

This issue seems to be caused by difference of behavior in Lithium topology manager.

This example of service function maps openflow:3:3 to vt_srvc1_1 and openflow:4:3 to vt_srvc1_2 respectively. But the topology manager detects inter-swtich link between openflow:3:3 and openflow:4:3.

GET /restconf/operational/network-topology:network-topology/topology/flow:1/link/openflow:3:3
-> {
"link": [
{
"destination":

{ "dest-node": "openflow:4", "dest-tp": "openflow:4:3" }

,
"link-id": "openflow:3:3",
"source":

{ "source-node": "openflow:3", "source-tp": "openflow:3:3" }

}
]
}

So VTerminal interfaces are treated as DOWN because ISL port cannot be mapped to virtual interface.

All the operations in that wiki page seems to work fine if we add the following flow entries:

  • Drop LLDP received from openflow:3:3
    PUT /restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:3/flow-node-inventory:table/0/flow-node-inventory:flow/drop_lldp_3
    {
    "flow-node-inventory:flow": [
    {
    "hard-timeout": 0,
    "id": "drop_lldp_3",
    "idle-timeout": 0,
    "match": {
    "ethernet-match":
    Unknown macro: { "ethernet-type"}

    ,
    "in-port": "openflow:3:3"
    },
    "priority": 10,
    "table_id": 0
    }
    ]
    }

  • Drop LLDP received from openflow:3:4
    PUT /restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:3/flow-node-inventory:table/0/flow-node-inventory:flow/drop_lldp_4
    {
    "flow-node-inventory:flow": [
    {
    "hard-timeout": 0,
    "id": "drop_lldp_4",
    "idle-timeout": 0,
    "match": {
    "ethernet-match":
    Unknown macro: { "ethernet-type"}

    ,
    "in-port": "openflow:3:4"
    },
    "priority": 10,
    "table_id": 0
    }
    ]
    }

  • Drop LLDP received from openflow:4:3
    PUT /restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:4/flow-node-inventory:table/0/flow-node-inventory:flow/drop_lldp_3
    {
    "flow-node-inventory:flow": [
    {
    "hard-timeout": 0,
    "id": "drop_lldp_3",
    "idle-timeout": 0,
    "match": {
    "ethernet-match":
    Unknown macro: { "ethernet-type"}

    ,
    "in-port": "openflow:4:3"
    },
    "priority": 10,
    "table_id": 0
    }
    ]
    }

  • Drop LLDP received from openflow:4:4
    PUT /restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:4/flow-node-inventory:table/0/flow-node-inventory:flow/drop_lldp_4
    {
    "flow-node-inventory:flow": [
    {
    "hard-timeout": 0,
    "id": "drop_lldp_4",
    "idle-timeout": 0,
    "match": {
    "ethernet-match":
    Unknown macro: { "ethernet-type"}

    ,
    "in-port": "openflow:4:4"
    },
    "priority": 10,
    "table_id": 0
    }
    ]
    }

Comment by Shigeru Yasuda [ 24/Jun/15 ]

I am planning to add new feature which manages static network topology configuration to VTN Manager by Lithium SR2, and it will solve this issue.

Comment by Shigeru Yasuda [ 28/Aug/15 ]

https://git.opendaylight.org/gerrit/26177 (stable/lithium)

Comment by Shigeru Yasuda [ 28/Aug/15 ]

SFC example described in the wiki page will work fine if the following configuration is applied.

PUT /restconf/config/vtn-static-topology:vtn-static-topology/static-edge-ports

{
"static-edge-ports": {
"static-edge-port": [

{ "port": "openflow:3:3" }

,

{ "port": "openflow:3:4" }

,

{ "port": "openflow:4:3" }

,

{ "port": "openflow:4:4" }

]
}
}

Comment by Shigeru Yasuda [ 03/Sep/15 ]

https://git.opendaylight.org/gerrit/26424 (master)

Comment by Shigeru Yasuda [ 03/Sep/15 ]

Patch was merged.
Please retest and close this bug if this issue is fixed.

Comment by Shigeru Yasuda [ 04/Sep/15 ]

I updated the patch. Please retest with new patch.

https://git.opendaylight.org/gerrit/26540 (master)
https://git.opendaylight.org/gerrit/26541 (stable/lithium)

Comment by YOGA LAKSHMI SWETHA PAYYAVULA [ 01/Oct/15 ]

Tested the updated patch successfully, and modified the wiki page accordingly:

https://wiki.opendaylight.org/view/Release/Lithium/VTN/HowTos/VTN_How_to_Configure_Service_Function_Chaining

Comment by YOGA LAKSHMI SWETHA PAYYAVULA [ 01/Oct/15 ]

The patch works fine. It has been tested in stable/lithium karaf distribution.

As suggested by Yesuda San, used the below rest api before configuring :

curl -v --user admin:admin -H 'Accept: application/json' -H 'content-type: application/json' -H 'ipaddr:127.0.0.1' -X PUT http://localhost:8181/restconf/config/vtn-static-topology:vtn-static-topology/static-edge-ports -d '{"static-edge-ports": {"static-edge-port": [

{"port": "openflow:3:3"}

,

{"port": "openflow:3:4"}

,

{"port": "openflow:4:3"}

,

{"port": "openflow:4:4"}

]}}'

Update the Service function chaining wiki page with the above comamnd: PFB the link for the same:

https://wiki.opendaylight.org/view/Release/Lithium/VTN/HowTos/VTN_How_to_Configure_Service_Function_Chaining

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