I've got some problems with Open vSwitch on a little ARM-based machine
(32 bit, little endian).  I've tried to set it up exactly the same as I
have on x86, but I'm getting somewhat different (and problematic)
results.

The most significant problem is that the buffer IDs in OpenFlow messages
seem to be coming out wrong.  Specifically, in packet_in messages, they
seem to be shifted by 16 bits (or two 16 bit words are swapped or
something).  I have to shift it back when I use it in a flow_mod or
packet_out.  I've attached a pcap capture showing a working
packet_in/packet_out pair.

Additionally, I get a lot of log messages of the forms:
dpif|WARN|system@br0: failed to put[create][modify][zero] (Invalid
argument)
 and
dpif|WARN|system@br0: failed to flow_dump (Invalid argument) <empty>

I've attached a snip of the syslog.

I get similar results using both ovs-vswitchd and test-openflowd.

The only screwy thing I can think of that I'm doing is using one
compiler (x86 hosted) to build the Linux kernel and another compiler
(ARM hosted) to build the OVS userspace tools.  I have tried building
the OVS kernel module with both compilers and get the same result either
way.  (The reason for this is that I really don't want to build Linux on
this little device, and the OVS userspace tools all segfault when
cross-compiled.)

Could the two compilers be creating an alignment issue of some sort?
Does anyone have any other ideas of what the problem might be, or how I
might go about figuring it out?

Thanks.

-- Murphy
Oct 17 04:50:59 plug ovs-vswitchd: 00008|rconn|INFO|br0<->tcp:127.0.0.1: 
connecting...
Oct 17 04:50:59 plug ovs-vswitchd: 00009|rconn|INFO|br0<->tcp:127.0.0.1: 
connected
Oct 17 04:51:17 plug ovs-vswitchd: 00010|dpif|WARN|system@br0: failed to 
put[create][modify][zero] (Invalid argument) 
in_port(1),eth(src=42:a3:86:29:29:85,dst=cc:af:78:80:37:fa),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.194,proto=17,tos=0),udp(src=53,dst=49150),
 packets:0, bytes:0, used:never, actions:2
Oct 17 04:51:17 plug ovs-vswitchd: 00011|dpif|WARN|system@br0: failed to 
put[create][modify][zero] (Invalid argument) 
in_port(1),eth(src=42:a3:86:29:29:85,dst=cc:af:78:80:37:fa),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.194,proto=17,tos=0),udp(src=53,dst=49150),
 packets:0, bytes:0, used:never, actions:2
Oct 17 04:51:17 plug ovs-vswitchd: 00012|dpif|WARN|system@br0: failed to 
put[create][modify][zero] (Invalid argument) 
in_port(2),eth(src=cc:af:78:80:37:fa,dst=42:a3:86:29:29:85),eth_type(0x0800),ipv4(src=10.1.1.194,dst=140.211.15.34,proto=6,tos=0),tcp(src=49606,dst=80),
 packets:0, bytes:0, used:never, actions:1
Oct 17 04:51:17 plug ovs-vswitchd: 00013|dpif|WARN|system@br0: failed to 
put[create][modify][zero] (Invalid argument) 
in_port(2),eth(src=cc:af:78:80:37:fa,dst=42:a3:86:29:29:85),eth_type(0x0800),ipv4(src=10.1.1.194,dst=140.211.15.34,proto=6,tos=0),tcp(src=49606,dst=80),
 packets:0, bytes:0, used:never, actions:1
Oct 17 04:51:17 plug ovs-vswitchd: 00014|dpif|WARN|system@br0: failed to 
put[create][modify][zero] (Invalid argument) 
in_port(1),eth(src=42:a3:86:29:29:85,dst=cc:af:78:80:37:fa),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.194,proto=17,tos=0),udp(src=53,dst=49150),
 packets:0, bytes:0, used:never, actions:2
Oct 17 04:51:18 plug ovs-vswitchd: 00015|dpif|WARN|Dropped 5 log messages in 
last 1 seconds (most recently, 1 seconds ago) due to excessive rate
Oct 17 04:51:18 plug ovs-vswitchd: 00016|dpif|WARN|system@br0: failed to 
flow_dump (Invalid argument) <empty>
Oct 17 04:51:19 plug ovs-vswitchd: 00017|dpif|WARN|system@br0: failed to 
flow_dump (Invalid argument) <empty>
Oct 17 04:51:20 plug ovs-vswitchd: 00018|dpif|WARN|system@br0: failed to 
flow_dump (Invalid argument) <empty>
Oct 17 04:51:21 plug ovs-vswitchd: 00019|dpif|WARN|system@br0: failed to 
flow_dump (Invalid argument) <empty>


Attachment: cap.pcap
Description: Binary data

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to