I'm a beginner in SDN and ODL and I am trying to add OpenFlow flows to OVS switches in mininet but the flows are not being reflected when I check the packets in Wireshark. Here's my scenario.
- 3 switches with a linear topology and 3 hosts connected: sudo mn --topo linear --controller remote --switch ovsk,protocols=OpenFlow13
- ODL controller running on the same VM as mininet
What I would like to do is to configure MPLS manually. For example, as a starting point I'm trying to add MPLS labels for packet going from Host1 to Host3. and I'm trying to accomplish this using RESTCONF API and I'm getting status code 200 (OK) for the requests I send. Below are the XML body of the RESTCONF requests.
For IP packets incoming on port 1 of Switch1, to push MPLS label with a value of 12 and forward it out of port 2: 0 0 0x8847 1 12 2 2 0 100 0x800 1 0 10 true 0 flow-action-push-mpls 220
URL = "http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table0/flow/100"
Headers = {'content-type': 'application/xml','accept': 'application/json'}
Request type = PUT
Authentication = Basic Auth
Then when I inspect packets with wireshark on port 2 of switch 1, I can't see the MPLS header.
OpenFlow and RestConf plugins are installed in ODL. What is the possible reason that the added flow is not acting on packets?
PS. I installed mininet using package manager and not using the prebuilt VM.