Brady,
This is correct.
We use this approach in genius as well as netvirt, to program table 0 flows.
If you do setVlanIdPresent(false) with vlanId=0, you can see flow like below :
cookie=0x8000000, duration=155.130s, table=0, n_packets=236,
n_bytes=24384, priority=4,in_port=4,vlan_tci=0x0000/0x1fff
actions=write_metadata:0x70000000000/0xffffff0000000001,goto_table:17
Thanks,
Faseela
From: [email protected]
[mailto:[email protected]] On Behalf Of Brady
Johnson
Sent: Sunday, April 15, 2018 6:49 AM
To: Ryan Goulding <[email protected]>
Cc: openflowplugin-dev <[email protected]>
Subject: Re: [openflowplugin-dev] How to match on VLAN
I just figured it out. I was looking through the Openflow Plugin code, and
found in this file:
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowConvertor.java
This piece of code:
final VlanId zeroVlan = new VlanId(0);
VlanMatchBuilder vlanMatchBuilder = new VlanMatchBuilder();
VlanIdBuilder vlanIdBuilder = new VlanIdBuilder();
vlanIdBuilder.setVlanIdPresent(false);
vlanIdBuilder.setVlanId(zeroVlan);
vlanMatchBuilder.setVlanId(vlanIdBuilder.build());
VLAN_MATCH_FALSE = vlanMatchBuilder.build();
VlanMatchBuilder vlanMatchBuilder2 = new VlanMatchBuilder();
VlanIdBuilder vlanIdBuilder2 = new VlanIdBuilder();
vlanIdBuilder2.setVlanIdPresent(true);
vlanIdBuilder2.setVlanId(zeroVlan);
vlanMatchBuilder2.setVlanId(vlanIdBuilder2.build());
VLAN_MATCH_TRUE = vlanMatchBuilder2.build();
So, I tried the following match:
final VlanId vlanId = new VlanId(vlan);
VlanMatchBuilder vlanMatchBuilder = new VlanMatchBuilder();
VlanIdBuilder vlanIdBuilder = new VlanIdBuilder();
vlanIdBuilder.setVlanIdPresent(true);
vlanIdBuilder.setVlanId(vlanId);
vlanMatchBuilder.setVlanId(vlanIdBuilder.build());
match.setVlanMatch(vlanMatchBuilder.build());
And now I can add SetVlanId and StripVlan Actions. Im hoping that matching on
VlanId=0 is basically matching on any VlanId.
Here are the 2 flows that I get:
cookie=0xba5eba11, duration=4.454s, table=30, n_packets=0, n_bytes=0,
priority=500,ip,vlan_tci=0x1000/0x1000,nw_dst=192.168.1.0/24<http://192.168.1.0/24>
actions=load:0x5ad2a7aa->NXM_NX_REG1[],set_field:4196->vlan_vid,goto_table:40
cookie=0xba5eba11, duration=4.453s, table=90, n_packets=0, n_bytes=0,
priority=700,vlan_tci=0x1000/0x1000 actions=pop_vlan,output:8
Thanks,
Brady Johnson
[email protected]<mailto:[email protected]>
[http://www.inocybe.com/wp-content/uploads/2014/09/default-login-image.png]
[https://lh5.googleusercontent.com/4bsvmVYKzg5a_jM7_OOqbLXBSi8HbyuNfXuS5cO9eUpXgLzSUKrmdqdSOFmdShqIg0hX4xUHo2nYSUAlBC7KRnN3-COAkcx0CLOUEQrHCx9TVrQ2-0MP_qR0XpR22Kc8sdAQzZc1]<https://twitter.com/inocybetech>[https://lh3.googleusercontent.com/mkQzuX53_XbTrmTqeiS_gh2tauU4wJ_poqn7v-NSdKZoLI0jbWxdIIhrHZh7rSB-xpU7e2SqYDhcNfE8-rxzlQn15KaqJ9BqWOl65BakoHsKrbcCMhcdsnyrJAVuUV5SIFoazHIr]<http://www.inocybe.com/>[https://lh3.googleusercontent.com/Nzy3ZqITNZfRZ_hT9N3dh7K8ow5sF68e-qmL_5CFjka1oWK2XSfPZOUN6S9gp9k84l1KWTwDPCOb2Vbh0Oi6pVm4Nl7IpXp1QrTI6gkLNcWtMNpHMq2o2CxCfgqTPDA6pKBxNwhY]<https://www.linkedin.com/company/2661537?trk=tyah&trkInfo=clickedVertical%3Acompany%2CclickedEntityId%3A2661537%2Cidx%3A1-1-1%2CtarId%3A1441300264767%2Ctas%3Ainocybe>[Screenshot
2017-02-14 at 10.43.55
AM.png]<https://www.youtube.com/channel/UC9uUWABdPR0Je9Du_15FCkw>
On Sat, Apr 14, 2018 at 7:38 PM, Brady Johnson
<[email protected]<mailto:[email protected]>> wrote:
That's right Ryan, this is Nitrogen-SR2.
If nobody has experienced this, can somebody please point me to where the
Openflow Plugin VLAN validation code is? That is, there must be a Config Data
Store listener that validates the flows, and if there is something it doesnt
like, it wont write the flows to the Operational data store. I would like to
see what it considers as valid/invalid for flows with setVlanId and popVlan
actions.
Regards,
Brady Johnson
[email protected]<mailto:[email protected]>
[http://www.inocybe.com/wp-content/uploads/2014/09/default-login-image.png]
[https://lh5.googleusercontent.com/4bsvmVYKzg5a_jM7_OOqbLXBSi8HbyuNfXuS5cO9eUpXgLzSUKrmdqdSOFmdShqIg0hX4xUHo2nYSUAlBC7KRnN3-COAkcx0CLOUEQrHCx9TVrQ2-0MP_qR0XpR22Kc8sdAQzZc1]<https://twitter.com/inocybetech>[https://lh3.googleusercontent.com/mkQzuX53_XbTrmTqeiS_gh2tauU4wJ_poqn7v-NSdKZoLI0jbWxdIIhrHZh7rSB-xpU7e2SqYDhcNfE8-rxzlQn15KaqJ9BqWOl65BakoHsKrbcCMhcdsnyrJAVuUV5SIFoazHIr]<http://www.inocybe.com/>[https://lh3.googleusercontent.com/Nzy3ZqITNZfRZ_hT9N3dh7K8ow5sF68e-qmL_5CFjka1oWK2XSfPZOUN6S9gp9k84l1KWTwDPCOb2Vbh0Oi6pVm4Nl7IpXp1QrTI6gkLNcWtMNpHMq2o2CxCfgqTPDA6pKBxNwhY]<https://www.linkedin.com/company/2661537?trk=tyah&trkInfo=clickedVertical%3Acompany%2CclickedEntityId%3A2661537%2Cidx%3A1-1-1%2CtarId%3A1441300264767%2Ctas%3Ainocybe>[Screenshot
2017-02-14 at 10.43.55
AM.png]<https://www.youtube.com/channel/UC9uUWABdPR0Je9Du_15FCkw>
On Sat, Apr 14, 2018 at 7:02 PM, Ryan Goulding
<[email protected]<mailto:[email protected]>> wrote:
IIRC this is based off Nitrogen-SR2, so shouldn't be prone to the issues listed
there.
Thanks!
Regards,
Ryan Goulding
On Sat, Apr 14, 2018 at 6:52 PM, M. Ranganathan
<[email protected]<mailto:[email protected]>> wrote:
Not sure if this would help ( I was trying something a little different than
you are ) but I had some issues creating set Vlan flows in Carbon
https://stackoverflow.com/questions/47610513/how-to-create-a-set-vlan-flow
I had much better luck with Nitrogen
Ranga
On Fri, Apr 13, 2018 at 5:42 PM, Brady Johnson
<[email protected]<mailto:[email protected]>> wrote:
Hello,
Im trying to write flows to pop-vlan or just simply set the vlan-id, but the
flows arent being written to operational, nor the bridge. I tried doing an
etherType match on VLAN (0x8100) but that doesnt help.
The 2 use cases I have are for flows that ingress the bridge with VLAN already
set are:
1) if VLAN present (could be lots of different vlan IDs), pop it.
2) if VLAN present set the VLAN id to a different one.
Ive tried flows for both of these cases, and neither are written to
Operational. Ideally there should be an 802.1Q TPID (Tag protocol ID) match
field, where you could match on 0x8100, but I couldnt find anything like this.
Regards,
Brady Johnson
[email protected]<mailto:[email protected]>
[http://www.inocybe.com/wp-content/uploads/2014/09/default-login-image.png]
[https://lh5.googleusercontent.com/4bsvmVYKzg5a_jM7_OOqbLXBSi8HbyuNfXuS5cO9eUpXgLzSUKrmdqdSOFmdShqIg0hX4xUHo2nYSUAlBC7KRnN3-COAkcx0CLOUEQrHCx9TVrQ2-0MP_qR0XpR22Kc8sdAQzZc1]<https://twitter.com/inocybetech>[https://lh3.googleusercontent.com/mkQzuX53_XbTrmTqeiS_gh2tauU4wJ_poqn7v-NSdKZoLI0jbWxdIIhrHZh7rSB-xpU7e2SqYDhcNfE8-rxzlQn15KaqJ9BqWOl65BakoHsKrbcCMhcdsnyrJAVuUV5SIFoazHIr]<http://www.inocybe.com/>[https://lh3.googleusercontent.com/Nzy3ZqITNZfRZ_hT9N3dh7K8ow5sF68e-qmL_5CFjka1oWK2XSfPZOUN6S9gp9k84l1KWTwDPCOb2Vbh0Oi6pVm4Nl7IpXp1QrTI6gkLNcWtMNpHMq2o2CxCfgqTPDA6pKBxNwhY]<https://www.linkedin.com/company/2661537?trk=tyah&trkInfo=clickedVertical%3Acompany%2CclickedEntityId%3A2661537%2Cidx%3A1-1-1%2CtarId%3A1441300264767%2Ctas%3Ainocybe>[Screenshot
2017-02-14 at 10.43.55
AM.png]<https://www.youtube.com/channel/UC9uUWABdPR0Je9Du_15FCkw>
_______________________________________________
openflowplugin-dev mailing list
[email protected]<mailto:[email protected]>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
--
M. Ranganathan
_______________________________________________
openflowplugin-dev mailing list
[email protected]<mailto:[email protected]>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
[email protected]
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev