I am guessing that the problem here is that you're specifying that you want to 
match the IP protocol of a packet, but you're not constraining the type of 
packets to IP.  That is... your three lines below say essentially...

Build new table entries where:
1) The ethernet destination is the same as the ethernet destination for the 
current packet
2) The ethertype is the same as the ethertype for the current packet
3) The IP protocol is the same as the IP protocol for the current packet.


That makes sense when the current packet is IP, but what if it isn't?  In that 
case, the last line would be meaningless.  You need to *ensure* that it's 
always going to be true.  For example, by changing the statement for line 2 to 
"The ethertype is IP".

Or, as nicira-ext.h in Open vSwitch states it for a very similar case:
  A given nxm_header value may be used as 'src' or 'dst' only on a flow whose
  nx_match satisfies its prerequisites.  For example, NXM_OF_IP_TOS may be
  used only if the flow's nx_match includes an nxm_entry that specifies
  nxm_type=NXM_OF_ETH_TYPE, nxm_hasmask=0, and nxm_value=0x0800.


Hope that helps.

-- Murphy

On Dec 13, 2013, at 2:46 AM, Jayanth Silesh <jayanthsileshs.for...@gmail.com> 
wrote:

> Hello,
> 
> My code consists of these statements,
> 
> learn.spec.append(fms( field=nx.NXM_OF_ETH_DST, match=nx.NXM_OF_ETH_DST ))
> learn.spec.append(fms( field=nx.NXM_OF_ETH_TYPE, match=nx.NXM_OF_ETH_TYPE ))
> learn.spec.append(fms( field=nx.NXM_OF_IP_PROTO, match=nx.NXM_OF_IP_PROTO ))
> 
> 
> If the last time is added then it throws an error like below,
> 
> 
> INFO:core:POX 0.2.0 (carp) is up.
> INFO:openflow.of_01:[00-00-00-00-00-01 1] connected
> ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
> [00-00-00-00-00-01 1] Error: header:
> [00-00-00-00-00-01 1] Error:   version: 1
> [00-00-00-00-00-01 1] Error:   type:    1 (OFPT_ERROR)
> [00-00-00-00-00-01 1] Error:   length:  84
> [00-00-00-00-00-01 1] Error:   xid:     13
> [00-00-00-00-00-01 1] Error: type: 45250
> [00-00-00-00-00-01 1] Error: code: 0
> [00-00-00-00-00-01 1] Error: datalen: 72
> [00-00-00-00-00-01 1] Error: 0000: 00 00 23 20 00 01 02 0a  01 04 00 98 00 00 
> 00 0d   |..# ............|
> [00-00-00-00-00-01 1] Error: 0010: 00 00 23 20 00 00 00 0d  00 00 00 00 00 00 
> 00 00   |..# ............|
> [00-00-00-00-00-01 1] Error: 0020: 01 00 00 00 00 00 80 00  ff ff ff ff ff ff 
> 00 00   |................|
> [00-00-00-00-00-01 1] Error: 0030: 00 00 00 00 00 00 00 00  ff ff 00 60 00 00 
> 23 20   |...........`..# |
> [00-00-00-00-00-01 1] Error: 0040: 00 10 00 00 00 0a 80 00                    
>         |........        |
> ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
> [00-00-00-00-00-01 1] Error: header:
> [00-00-00-00-00-01 1] Error:   version: 1
> [00-00-00-00-00-01 1] Error:   type:    1 (OFPT_ERROR)
> [00-00-00-00-00-01 1] Error:   length:  84
> [00-00-00-00-00-01 1] Error:   xid:     14
> [00-00-00-00-00-01 1] Error: type: 45250
> [00-00-00-00-00-01 1] Error: code: 0
> [00-00-00-00-00-01 1] Error: datalen: 72
> [00-00-00-00-00-01 1] Error: 0000: 00 00 23 20 00 01 02 0a  01 04 00 98 00 00 
> 00 0e   |..# ............|
> [00-00-00-00-00-01 1] Error: 0010: 00 00 23 20 00 00 00 0d  00 00 00 00 00 00 
> 00 00   |..# ............|
> [00-00-00-00-00-01 1] Error: 0020: 01 00 00 00 00 00 80 00  ff ff ff ff ff ff 
> 00 00   |................|
> [00-00-00-00-00-01 1] Error: 0030: 00 00 00 00 00 00 00 00  ff ff 00 60 00 00 
> 23 20   |...........`..# |
> [00-00-00-00-00-01 1] Error: 0040: 00 10 00 00 00 0a 80 00                    
>         |........        |
> ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
> [00-00-00-00-00-01 1] Error: header:
> [00-00-00-00-00-01 1] Error:   version: 1
> [00-00-00-00-00-01 1] Error:   type:    1 (OFPT_ERROR)
> [00-00-00-00-00-01 1] Error:   length:  84
> [00-00-00-00-00-01 1] Error:   xid:     15
> [00-00-00-00-00-01 1] Error: type: 45250
> [00-00-00-00-00-01 1] Error: code: 0
> [00-00-00-00-00-01 1] Error: datalen: 72
> [00-00-00-00-00-01 1] Error: 0000: 00 00 23 20 00 01 02 0a  01 04 00 98 00 00 
> 00 0f   |..# ............|
> [00-00-00-00-00-01 1] Error: 0010: 00 00 23 20 00 00 00 0d  00 00 00 00 00 00 
> 00 00   |..# ............|
> [00-00-00-00-00-01 1] Error: 0020: 01 00 00 00 00 00 80 00  ff ff ff ff ff ff 
> 00 00   |................|
> [00-00-00-00-00-01 1] Error: 0030: 00 00 00 00 00 00 00 00  ff ff 00 60 00 00 
> 23 20   |...........`..# |
> [00-00-00-00-00-01 1] Error: 0040: 00 10 00 00 00 0a 80 00                    
>         |........        |
> ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
> [00-00-00-00-00-01 1] Error: header:
> [00-00-00-00-00-01 1] Error:   version: 1
> [00-00-00-00-00-01 1] Error:   type:    1 (OFPT_ERROR)
> [00-00-00-00-00-01 1] Error:   length:  84
> [00-00-00-00-00-01 1] Error:   xid:     17
> [00-00-00-00-00-01 1] Error: type: 45250
> [00-00-00-00-00-01 1] Error: code: 0
> [00-00-00-00-00-01 1] Error: datalen: 72
> [00-00-00-00-00-01 1] Error: 0000: 00 00 23 20 00 01 02 0a  01 04 00 98 00 00 
> 00 11   |..# ............|
> [00-00-00-00-00-01 1] Error: 0010: 00 00 23 20 00 00 00 0d  00 00 00 00 00 00 
> 00 00   |..# ............|
> [00-00-00-00-00-01 1] Error: 0020: 04 00 00 00 00 00 80 00  ff ff ff ff ff ff 
> 00 00   |................|
> [00-00-00-00-00-01 1] Error: 0030: 00 00 00 00 00 00 00 00  ff ff 00 60 00 00 
> 23 20   |...........`..# |
> [00-00-00-00-00-01 1] Error: 0040: 00 10 00 00 00 0a 80 00                    
>         |........        |
> ERROR:openflow.of_01:[00-00-00-00-00-01 1] OpenFlow Error:
> [00-00-00-00-00-01 1] Error: header:
> [00-00-00-00-00-01 1] Error:   version: 1
> [00-00-00-00-00-01 1] Error:   type:    1 (OFPT_ERROR)
> [00-00-00-00-00-01 1] Error:   length:  84
> [00-00-00-00-00-01 1] Error:   xid:     18
> [00-00-00-00-00-01 1] Error: type: 45250
> [00-00-00-00-00-01 1] Error: code: 0
> [00-00-00-00-00-01 1] Error: datalen: 72
> [00-00-00-00-00-01 1] Error: 0000: 00 00 23 20 00 01 02 0a  01 04 00 98 00 00 
> 00 12   |..# ............|
> [00-00-00-00-00-01 1] Error: 0010: 00 00 23 20 00 00 00 0d  00 00 00 00 00 00 
> 00 00   |..# ............|
> [00-00-00-00-00-01 1] Error: 0020: 04 00 00 00 00 00 80 00  ff ff ff ff ff ff 
> 00 00   |................|
> [00-00-00-00-00-01 1] Error: 0030: 00 00 00 00 00 00 00 00  ff ff 00 60 00 00 
> 23 20   |...........`..# |
> [00-00-00-00-00-01 1] Error: 0040: 00 10 00 00 00 0a 80 00                    
>         |........        |
> ^CINFO:core:Going down...
> INFO:openflow.of_01:[00-00-00-00-00-01 1] disconnected
> INFO:core:Down.
> 
> Thanks,
> Jayanth 
> Graduate Student
> USC
> 
> 

Reply via email to