On Feb 24, 2014, at 10:08 PM, Naman Muley <naman.g.mu...@gmail.com> wrote:
> Hello, > > I was working with pox and a vendor open-flow switch (hardware). When I > connect my configured switch to the pox controller, I get the following error > message > > I did some looking around and found that type 4520, code 0 is not standard > openflow but a ovs extension. but this is not possible in my case as my > vendor is no where related to nicira / ovs / vmware. Are you sure? I believe a number of hardware vendors have based their implementations on OVS. Or is it possible that the switch that's connecting isn't the one that you think it is (e.g., it's a random OVS instance somewhere)? You could try running info.switch_info and see what it says. Even if it's not actually a Nicira switch, it still could use the Nicira extension in order to report extended error information. BUT... this certainly looks like an OVS switch. Examining the error hexdump you can see that the first byte is a 0, and the next bytes are 00-23-20. Following the extended error format, the 0 means the next three bytes should be an OUI, and... 00-23-20 is Nicira's OUI. The next four bytes are two 16 bit fields: the "inner" type and code. In this case, it's 1,514. OVS's ofp-errors.h has this to say: /* NX1.0(1,514), NX1.1(1,514), OF1.2+(1,11). Invalid port. * [ A non-standard error (1,514), formerly * OFPERR_NXBRC_BAD_IN_PORT is used for OpenFlow 1.0 and 1.1 as there * seems to be no appropriste error code defined the specifications. ] */ OFPERR_OFPBRC_BAD_PORT, This seems to indicate that an in_port is set to something the switch doesn't like. This seems a bit strange, since I think l2_learning always uses one from a packet_in, so you'd think it would be valid. Looking further at the data, we can see it's an OpenFlow 1.0 message (0x01), type 0x0e (which I think is a flow_mod). Unfortunately, it's truncated in the error message. If we had the OpenFlow traffic we could find the original message which caused the error via its XID (9) and take a look. > I can send the whole pox.log file if anyone wants. The control (OpenFlow) traffic is probably more immediately useful. > here are the components on pox I was running - > $./pox.py openflow.of_01 --port=6633 --address=192.168.2.1 log > --file=pox.log,w log.level --DEBUG forwarding.l2_learning With no modifications? > I saw the same error message on dart as well as betta forks. > > I have attached the detailed pox.log file. > > I am afraid I don't have the capture as yet. But I am working on getting a > capture of the traffic. A simulated capture of the control traffic can be gathered with the openflow.debug component. > I was wondering if someone could shed more light on what could be causing > this ? a version mismatch or is there something wrong with the vendor > implementation of the openflow ? > > -------- ERROR message : --------------------------------- > > DEBUG:core:POX 0.3.0 (dart) going up... > DEBUG:core:Running on CPython (2.7.3/Sep 26 2013 20:03:06) > DEBUG:core:Platform is Linux-3.2.0-29-generic-x86_64-with-Ubuntu-12.04-precise > INFO:core:POX 0.3.0 (dart) is up. > DEBUG:openflow.of_01:Listening on 192.168.2.1:6633 > INFO:openflow.of_01:[xx-xx-xx-xx-xx-xx 1] connected > DEBUG:forwarding.l2_learning:Connection [xx-xx-xx-xx-xx-xx 1] > DEBUG:forwarding.l2_learning:Port for 00:e0:2b:00:00:00 unknown -- flooding > DEBUG:forwarding.l2_learning:Port for 00:e0:2b:00:00:00 unknown -- flooding > DEBUG:forwarding.l2_learning:installing flow for 00:16:41:ef:46:47.11 -> > 00:16:41:ef:5f:70.15 > ERROR:openflow.of_01:[xx-xx-xx-xx-xx-xx 1] OpenFlow Error: > [xx-xx-xx-xx-xx-xx 1] Error: header: > [xx-xx-xx-xx-xx-xx 1] Error: version: 1 > [xx-xx-xx-xx-xx-xx 1] Error: type: 1 (OFPT_ERROR) > [xx-xx-xx-xx-xx-xx 1] Error: length: 84 > [xx-xx-xx-xx-xx-xx 1] Error: xid: 9 > [xx-xx-xx-xx-xx-xx 1] Error: type: 45250 > [xx-xx-xx-xx-xx-xx 1] Error: code: 0 > [xx-xx-xx-xx-xx-xx 1] Error: datalen: 72 > [xx-xx-xx-xx-xx-xx 1] Error: 0000: 00 00 23 20 00 01 02 02 01 0e 00 50 00 00 > 00 09 |..# .......P....| > [xx-xx-xx-xx-xx-xx 1] Error: 0010: 00 00 00 00 00 0b 00 16 41 ef 46 47 00 16 > 41 ef |........A.FG..A.| > [xx-xx-xx-xx-xx-xx 1] Error: 0020: 5f 70 ff ff 00 00 08 06 00 02 00 00 0a 0a > 01 0a |_p..............| > [xx-xx-xx-xx-xx-xx 1] Error: 0030: 0a 0a 01 0c 00 00 00 00 00 00 00 00 00 00 > 00 00 |................| > [xx-xx-xx-xx-xx-xx 1] Error: 0040: 00 00 00 0a 00 1e 80 00 > |........ | > > -------------- ERROR message -------------------------------------- > > Naman > <pox.log>