[OPNFLWPLUG-188] of-flow: instruction (push-vlan-action) different in config and operational db Created: 11/Jun/14 Updated: 27/Sep/21 Resolved: 13/Jun/14 |
|
| Status: | Resolved |
| Project: | OpenFlowPlugin |
| Component/s: | General |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Peter Gubka | Assignee: | Anil Vishnoi |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: Linux |
||
| Attachments: |
|
| External issue ID: | 1183 |
| Description |
|
odl: test: mininet 2.1.0 + ovs 2.0.0 steps: 2) GET its operational state (for full details see f110odb.xml in attachment) 4) seen difference operational: the tag <vlan-id>1234</vlan-id> is missing in operational data store |
| Comments |
| Comment by Peter Gubka [ 11/Jun/14 ] |
|
Attachment f110.xml has been added with description: flow to be configured |
| Comment by Peter Gubka [ 11/Jun/14 ] |
|
Attachment f110odb.xml has been added with description: operational details of the flow |
| Comment by Anil Vishnoi [ 13/Jun/14 ] |
|
Hi Peter, I am able to recreate this issue locally. After installing the flow through RESTCONF, when i dump the flow on switch i see following flow mininet> sh ovs-ofctl dump-flows s1 --protocol=OpenFlow13 So if you see [actions=push_vlan:0x8100] push_vlan only has ethertype [0x8100 = 33024], and that's the reason operational datastore shows only ethertype. This information is directly fetch from switch and hence reflect the final flow installed on the switch. I debug to figure out what controller is getting from switch and this is what it receives from switch Action [_type=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan, augmentation=[EthertypeAction [_ethertype=EtherType [_value=33024]]]] and it doesn't have vlan-id value. I believe this behavior is correct because if you refer openflow spec 1.3.2+ (section 7.2.4 & 5.12) following is the structure for the push vlan tag /* Action structure for OFPAT_PUSH_VLAN/MPLS/PBB. */ So push vlan action doesn't take vlan-id as a input, it just take ethertype. This action will add vlan header with given ethertype to the packet and rest all fields of the header will be unset. If you want to set vlan-id field of this header you will have to use Set-Field action after push-vlan action to do that. Thanks |