- Community Home
- >
- Networking
- >
- Software Defined Networking
- >
- Match problem in Flow MOD
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2014 03:26 AM
03-21-2014 03:26 AM
Match problem in Flow MOD
Hello,
I have 4 HP switch with the same configuration.
Here is the match field I've just created:
MutableMatch match = MatchFactory.createMatch(PV);
match = MatchFactory.createMatch(version);
match.addField(FieldFactory.createBasicField(PV, OxmBasicFieldType.ETH_TYPE, EthernetType.ARP));
When I execute my bundle, only 2 from my 4 switch received the flow mod.
Here is the trace I can see on the "OpenFlow trace":
11:05:08.282MESSAGE_TX00:14:f0:92:1c:21:fa:c0{ofm:[V_1_3,FLOW_MOD,88,2027],cmd=ADD,match={Match(V_1_3):[type=OXM,len=10],fields=ETH_TYPE},...}
11:05:08.282MESSAGE_TX00:14:f0:92:1c:21:fa:c0{ofm:[V_1_3,BARRIER_REQUEST,8,2027]}
11:05:08.210MESSAGE_TX00:14:c0:91:34:e7:b5:c0{ofm:[V_1_3,FLOW_MOD,88,2025],cmd=ADD,match={Match(V_1_3):[type=OXM,len=10],fields=ETH_TYPE},...}
11:05:08.210MESSAGE_TX00:14:c0:91:34:e7:b5:c0{ofm:[V_1_3,BARRIER_REQUEST,8,2025]}
11:05:08.212MESSAGE_RX00:14:c0:91:34:e7:b5:c0{ofm:[V_1_3,ERROR,76,2025],BAD_MATCH/BAD_FIELD,#dataBytes=64,OFM-cause:[V_1_3,FLOW_MOD,88,2025]}
11:05:08.212MESSAGE_RX00:14:c0:91:34:e7:b5:c0{ofm:[V_1_3,BARRIER_REPLY,8,2025]}
11:05:08.246MESSAGE_TX00:14:f0:92:1c:21:a8:40{ofm:[V_1_3,FLOW_MOD,88,2026],cmd=ADD,match={Match(V_1_3):[type=OXM,len=10],fields=ETH_TYPE},...}
11:05:08.246MESSAGE_TX00:14:f0:92:1c:21:a8:40{ofm:[V_1_3,BARRIER_REQUEST,8,2026]}
11:05:08.167MESSAGE_TX00:14:3c:4a:92:fa:cd:80{ofm:[V_1_3,FLOW_MOD,88,2024],cmd=ADD,match={Match(V_1_3):[type=OXM,len=10],fields=ETH_TYPE},...}
11:05:08.168MESSAGE_TX00:14:3c:4a:92:fa:cd:80{ofm:[V_1_3,BARRIER_REQUEST,8,2024]}
11:05:08.169MESSAGE_RX00:14:3c:4a:92:fa:cd:80{ofm:[V_1_3,ERROR,76,2024],BAD_MATCH/BAD_FIELD,#dataBytes=64,OFM-cause:[V_1_3,FLOW_MOD,88,2024]}
The flow mod worked for switch 14:f0:92:1c:21:fa:c0 and switch 14:f0:92:1c:21:a8:40 and failed for 14:c0:91:34:e7:b5:c0 and 14:3c:4a:92:fa:cd:80.
The Error returned by the switches is: BAD_MATCH/BAD_FIELD.
If my match is wrong, why does it work for two switches and failes for the rest ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2014 02:51 AM
03-22-2014 02:51 AM
Re: Match problem in Flow MOD (COMPLEMENT)
If I replace
match.addField(FieldFactory.createBasicField(PV, OxmBasicFieldType.ETH_TYPE, EthernetType.ARP));
with
match.addField(FieldFactory.createBasicField(PV, OxmBasicFieldType.ETH_TYPE, EthernetType.IPv4));
the flow mod works in all my switchs.
With the ARP entry, It work only on two switch, that is very curious ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2014 03:14 AM
03-22-2014 03:14 AM
Re: Match problem in Flow MOD (COMPLEMENT)
I found a solution. I've put:
match.addField(FieldFactory.createBasicField(PV, OxmBasicFieldType.ETH_TYPE, EthernetType.ARP));
match.addField(FieldFactory.createBasicField(PV, OxmBasicFieldType.ARP_OP, Arp.OpCode.REQ.code()));
But I don't know why ? If you can explain, I will be happy...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-24-2014 05:07 PM
03-24-2014 05:07 PM
Re: Match problem in Flow MOD (COMPLEMENT)
Hi sbotkine,
This all depends on which HP switches you're sending the flow-mod to and how they're configured. Any switches which have v2 modules only ("no allow-v1-modules") such as the 5400 or 8200, or switches which exclusively have v2 modules such as the 3800 (or slight variant 2920) will support matching ARP packets in table 100 (OpenFlow 1.3). If you are using a 5400, 8200 (with v1 modules allowed) or a 3500 (exclusively v1 modules) then matching against ARP packets in table 100 will be rejected by the switch.
Could you post the model of switch(es) that work and switch(es) that don't with the code you posted above? I don't see why adding the ARP_OP line would cause it to work on v1 modules.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-25-2014 02:25 AM
03-25-2014 02:25 AM
Re: Match problem in Flow MOD (COMPLEMENT)
I have:
2 x HP 3800-24G-2SFP (J9575A)
2x HP 3500-24G (J8692A)
But the flow mod installed correctly on one HP3800 and one HP3500, and didn't installed on the other HP3800 and the other HP 3500. That's strange.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-12-2014 10:47 AM - edited 04-12-2014 10:49 AM
04-12-2014 10:47 AM - edited 04-12-2014 10:49 AM
Re: Match problem in Flow MOD (COMPLEMENT)
Hello sbotkine,
In table 100 match on ARP packets (on V2 blades) is supported. But match on ARP opcode is not allowed (supported in SW tables only). So it looks like when you add ARP opcode as match field, flows are installed in SW tables. When we say flows will get installed in SW tables, it may be because HP’s controller is already aware of the fact that such flows cannot go into Table 100 and therefore it may push the same flow into Table 200 which would be a software table. A dump of flows installed in the switch will help clarify in which tables the flows sit inside the switch.
Not convinced about the first attempt 3800 failure. Can you provide the following ?
1) Switch image version.
2) Running config.
3) Wireshark capture of the flow mod and error response.
Thanks,
HP SDN Team