[OPNFLWPLUG-72] Packet out does not contain buffer id corresponding to the buffer id of the respective packet in. Created: 20/Feb/14  Updated: 27/Sep/21  Resolved: 06/Jun/17

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Improvement
Reporter: Sindhuri B Assignee: Debolina Bandyopadhyay
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows
Platform: PC


Attachments: File buffer_id_issue.pcapng    

 Description   

Test Case:
=========
-> Connect two switches with 2 hosts attached to the controller
->Install flow in the switches to punt the arp packet to the controller with max length as 40.

{table="0", match="oxm

{eth_type="0x806"}

", dur_s="9", dur_ns="364000", prio="2", idle_to="1000", hard_to="1200", cookie="0x1", pkt_cnt="0", byte_cnt="0", insts=[apply{acts=[out

{port="ctrl", mlen="40"}

]}]}]}

-> Ping from host1 to host2.

The switch is sending packet-in with buffer id set to a value. The corresponding packet-out containing the payload of packet-in has buffer id set to OFP_NO_BUFFER instead of the actual value from the packet-in.

The packet capture is attached.

Another issue is that here the packet is malformed due to the insufficient size of the packet with no proper header. In this case should the controller send it out on an output port or simply ignore?

Thanks,
Sindhuri.



 Comments   
Comment by Sindhuri B [ 20/Feb/14 ]

Attachment buffer_id_issue.pcapng has been added with description: Refer to frames 3,4,5,6 for which the buffer id is not set to correct value.

Comment by Debolina Bandyopadhyay [ 20/Mar/14 ]

Sindhuri, while trying to reproduce this bug, in the packet-out - buffer_id it shows the value None and I don't see this value OFP_NO_BUFFER. Can you tell me the exact settings or configurations you have done at your end, due to which you are able to see that particular value?

Comment by Sindhuri B [ 21/Mar/14 ]

Hi Debolina,

I have used CPqD switches . You can install CPqD switch from internet.
Mininet command to create topology:
sudo mn --topo linear,2 --controller 'remote,ip=<controllerip>,port=6653' --switch user

From mininet prompt, you can use “h1 ping –c 5 h2”.

From Rest client I have configured flow to the switches:

URI: http://localhost:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/300

Xml body:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>40</max-length>
</output-action>
</action>
</apply-actions>
</instruction>
</instructions>
<table_id>0</table_id>
<id>300</id>
<cookie_mask>255</cookie_mask>
<installHw>false</installHw>
<match>
<ethernet-match>
<ethernet-type>
<type>2054</type>
</ethernet-type>
</ethernet-match>
</match>
<hard-timeout>1200</hard-timeout>
<flags>FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=false]</flags>
<cookie>1</cookie>
<idle-timeout>1000</idle-timeout>
<flow-name>Fo1</flow-name>
<priority>2</priority>
<barrier>false</barrier>
</flow>

Thanks,
Sindhuri.

Comment by Abhijit Kumbhare [ 17/Apr/14 ]

Any update on this Debolina?

Comment by Debolina Bandyopadhyay [ 17/Apr/14 ]

(In reply to Abhijit Kumbhare from comment #3)
> Any update on this Debolina?

We were looking into the OPNFLWPLUG-72 which talks about the packet-out not having the buffer id for the corresponding packet-in which has the buffer id. While debugging we came across the code where the translation happens which is in the PacketInTranslator.Java from OFPlugin.
If you see this PacketInTranslator code, this takes in the message from the open flow and translates to mdsal message, while doing so it is not preserving the buffer id from our understanding.
So we were thinking to add a field in the PacketReceivedBuilder, effectively in the PackerReceiverImpl in the file PacketReceivedBuilder. We diescussed this with Michal Rehak and he mentioned to contact Ed Warnicke regarding this, as we are not sure on who else is using the PacketReceivedImpl and what implications it might have. This seems like a more architectural view question according to Michal.
Questions we had were:
1. Is adding the field bufferid into the PacketReceivedImpl the right way to go?
2. What modules should we be testing if we change this PacketReceivedImpl?
3. This is something that we are still yet to debug, where is this received packet digested by mdsal and also the other half of the flow which is packet out needs to be debugged as well. Michal/Ed, if you guys know then you can point us there. We will debug as we go over the flow.

We mailed Ed regarding the above questions but since its an enhancement bug, no response was received as it was not the priority that time.

Comment by Jozef Bacigal [ 06/Jun/17 ]

No response more than 3 years. Closing.

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