Software Defined Networking
cancel
Showing results for 
Search instead for 
Did you mean: 

Why does this flow go into software?

 
Highlighted
Advisor

Why does this flow go into software?

I have a simple flow (see json below) that matches an incoming port and outputs to a single port. If my reading of the flow classification appendix in the openflow configuration guide is correct, this flow should go into hardware as long as I specify IP Ethernet Type AND I do NOT specify a src/dst MAC. But, it goes into software.

 

The platform is an HP 5412 running K.15.15.0008

 

thanks.

 

{

"flow": {

"priority": 60003,

"idle_timeout": 60,

"table_id": 200,

"match": [

{"eth_type": "ipv4"},

{"in_port":265}

],

"instructions":[{

"apply_actions":[{"output":266}]}]

}

}

10 REPLIES 10
Highlighted
Valued Contributor

Re: Why does this flow go into software?

Hello

 

You are adding the flow to Table 200 that is a software table.

If you want to add this flow in hardware you should add it to Table 100 (matching for ether type and ingress port), according to the fw running on the 5400zl and assuming you're running controller version 2.4 or above.

 

Hope this helps,

 

Regards,

 

Antonio

SDN CoE

Highlighted
Advisor

Re: Why does this flow go into software?

Thanks for the clarification. I had tried that, but it won't install the flow in table 100. The only other flows on the switch are the default ones installed by the VAN controller hybrid (dhcp, arp, and normal).

 

 

Highlighted
Valued Contributor

Re: Why does this flow go into software?

Hello,

 

Are you using RSdocs to add the flow?

if yes, which is the response code you are getting?

If not, are you using Curl?

If yes, can you provide output?

 

Regards,

 

Antoino

 

 

Highlighted
Advisor

Re: Why does this flow go into software?

I'm using curl. There is no output. It accepts it without complaining.

 

If I change the action output to "normal" (instead of a single port) the rule installs in the switch table 100 fine.

 

I guess there is something that makes the rule not able to go in hardware. Below is what the flow looks like when installed in table 200. Now, the flow match table appendix says the MAC field "MUST NOT be present in the flow or is not applicable" to be able to go into hardware. Yet it shows up as "ANY" in the show output. Is there a way to specify eth_src and eth_dst as NA?

 

thanks.

 

Below is the json for the 2 flows followed by the "show openflow instance aggregate flows" output for each of the 2 flows.

 

A. flow to match ingress port, output a single port (will only install on table 200)

{

"flow": {

"priority": 3,

"idle_timeout": 60,

"table_id": 200,

"match": [

{"eth_type": "ipv4"},

{"in_port":265}

],

"instructions":[{

"apply_actions":[{"output": 266}]}]

}

}

 

B. Same thing but with action to output "normal" (installs fine on table 100)

{

"flow": {

"priority": 3,

"idle_timeout": 60,

"table_id": 100,

"match": [

{"eth_type": "ipv4"},

{"in_port":265}

],

"instructions":[{

"apply_actions":[{"output": "normal"}]}]

}

}

 

C. switch show flows for flow "A"

Flow 10

Match

  Incoming Port : L1                    Ethernet Type    : IP

  Source MAC    : Any                   Destination MAC  : Any

  VLAN ID       : Any                   VLAN priority    : Any

  Source Protocol Address : Any

  Target Protocol Address : Any

  IP Protocol   : Any

  IP ECN        : Any                   IP DSCP          : Any

  Source Port   : Any                   Destination Port : Any

Attributes

  Priority      : 3                     Duration         : 54 seconds

  Hard Timeout  : 0 seconds             Idle Timeout     : 60 seconds

  Byte Count    : 0                     Packet Count     : 0

  Flow Table ID : 200                   Controller ID    : 1

  Activity Count: NA                    Cookie           : 0x0

  Hardware Index     : NA

Instructions

   Apply Actions

     Output                      : L2

 

D. Switch show flows for flow "B"

Flow 6

Match

  Incoming Port : L1                    Ethernet Type    : IP

  Source MAC    : Any                   Destination MAC  : Any

  VLAN ID       : Any                   VLAN priority    : Any

  Source Protocol Address : Any

  Target Protocol Address : Any

  IP Protocol   : Any

  IP ECN        : Any                   IP DSCP          : Any

  Source Port   : Any                   Destination Port : Any

Attributes

  Priority      : 3                     Duration         : 2 seconds

  Hard Timeout  : 0 seconds             Idle Timeout     : 60 seconds

  Byte Count    : NA                    Packet Count     : 0

  Flow Table ID : 100                   Controller ID    : 1

  Activity Count: NA                    Cookie           : 0x0

  Hardware Index     : 0

Instructions

   Apply Actions

    Normal

 

 

 

Highlighted
Advisor

Re: Why does this flow go into software?

On futher thought, the "match" portion seems to be okay (since it installs in hardware when the action is "normal").

 

Yet,the "action" portion of forwarding to a single port should also be supported in hardware. I'm at a loss. The switch modules are all v2. The controller is 2.4.5

 

 

 

 

 

 

Highlighted
Valued Contributor

Re: Why does this flow go into software?

Hi,

 

I just installed a flow on table 100 on a 5406zl.

I only modified the ports to match mine (i used 1 and 2 and not 265 and 266 as you did).

 

Considering that you are using v2 modules and that action normal is accepted my only suspicion is that port 266 might not be on same DPID.

 

Can you send the "show run" output to check your configuration?

Can you also send a screen shot of the ports on the DPID (gathered from the controller gui)?

 

Regards,

 

Antonio

SDN Team

 

Highlighted
Advisor

Re: Why does this flow go into software?

Okay, I also tried with lower numbered ports (7 and 8) without success. Do you have the default flows installed by hybrid VAN controller?

 

Attached are the screen shots and show info.

 

Thanks again.

 

I'll also try it on another switch to compare.

Highlighted
Advisor

Re: Why does this flow go into software?

It worked on a 5406 running K.15.16.0005 and also on a 3800 runing KA.15.16.005

 

So I'll upgrade to K.15.16.005 to see if that does the trick.

 

 

Highlighted
Valued Contributor

Re: Why does this flow go into software?

Hello,

 

When I added the flow to a 5400zl I was actually running version k.15.16.005.

I think you will not have problem in adding the flow when running this code.

 

From your configuration I noticed you configured "mode passive".

Although this does not play a role with yor issue,  you should consider how this setting is only applicable for OpenFlow instances version 1.0 (as per the OpenFlow Administrator Guide).

 

Regards,

 

Antonio

SDN Team