Software Defined Networking
1827976 Members
2618 Online
109973 Solutions
New Discussion

Match problem in Flow MOD

 
sbotkine
Frequent Advisor

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 ?

5 REPLIES 5
sbotkine
Frequent Advisor

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 ?

sbotkine
Frequent Advisor

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...

ShaunWackerly
HPE Pro

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.

 

I am an HPE Employee
sbotkine
Frequent Advisor

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.

 

sdnindia
Trusted Contributor

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