It does seem to be the same as the message on the mailing list, which
I don't think was ever understood. I tried and failed to reproduce
this with packet outs and I think that Ben was previously unsuccessful
with LLDP packets.
Can you try the attached patch? It just breaks out the various causes
of failure instead of reporting a generic EINVAL. It's a kernel
patch, so you'll have to reload the kernel module and then look for
relevant log messages in dmesg.
On Mon, Aug 29, 2011 at 10:39 PM, Aaron Rosen <[email protected]> wrote:
> Also, If it helps debug I could provide the address of my controller and you
> could point a switch at it (unless you think this is a configuration issue
> on my part).
> btw: found this on the mailing list but I'm not sure if the cause was ever
> determined
> http://www.mail-archive.com/[email protected]/msg01806.html
> P.S: Added Ben to CC since he was helping me with this problem on IRC but
> for some reason it had seemed to resolve itself at the time.
> Thanks,
> Aaron
>
> On Tue, Aug 30, 2011 at 1:10 AM, Aaron Rosen <[email protected]> wrote:
>>
>> Yup the same,
>> [root@planetlab4 ~]# dmesg | grep "Open vSwitch"
>> Open vSwitch 1.2.90, built Aug 29 2011 15:49:49
>> [root@planetlab4 utilities]# ./ovs-appctl version
>> ovs-vswitchd (Open vSwitch) 1.2.90
>> Compiled Aug 29 2011 15:50:36
>> Thanks,
>> Aaron
>>
>>
>> On Tue, Aug 30, 2011 at 1:07 AM, Justin Pettit <[email protected]> wrote:
>>>
>>> Can you confirm there's no mismatch? If you're running the latest from
>>> git, try running:
>>>
>>> ./ovs-appctl version
>>>
>>> and:
>>>
>>> dmesg | grep "Open vSwitch"
>>>
>>> to make sure they match.
>>>
>>> --Justin
>>>
>>>
>>> On Aug 29, 2011, at 7:22 PM, Aaron Rosen wrote:
>>>
>>> > I'm using the kernel version not the userspace ( unless my
>>> > understanding of this is unclear) Also, I'm near positive I'm not mixing
>>> > versions.
>>> >
>>> > Aaron
>>> >
>>> > On Mon, Aug 29, 2011 at 10:16 PM, Jesse Gross <[email protected]> wrote:
>>> > On Tue, Aug 30, 2011 at 12:30 AM, Aaron Rosen <[email protected]>
>>> > wrote:
>>> > > Hello,
>>> > > I'm sending ARP packets from my openflow controller and everything
>>> > > seems to
>>> > > be working on hardware switches though on OVS I'm getting the
>>> > > following
>>> > > error in /var/log/messages.
>>> > > ovs-vswitchd: 70867|dpif|WARN|Dropped 1 log messages in last 1
>>> > > seconds (most
>>> > > recently, 1 seconds ago) due to excessive rate
>>> > >
>>> > > ovs-vswitchd: 70868|dpif|WARN|system@dp0: execute 0,1 failed (Invalid
>>> > > argument) on packet 66:f3:43:38:f4:a2 > Broadcast, ethertype ARP
>>> > > (0x0806),
>>> > > length 56: Request who-has 10.43.100.104 tell 10.43.100.105, length
>>> > > 42
>>> >
>>> > I would check that userspace and kernel versions are the same.
>>> >
>>> >
>>> >
>>> > --
>>> > Aaron O. Rosen
>>> > Masters Student - Network Communication
>>> > 306B Fluor Daniel
>>> >
>>> >
>>> > _______________________________________________
>>> > discuss mailing list
>>> > [email protected]
>>> > http://openvswitch.org/mailman/listinfo/discuss
>>>
>>
>>
>>
>> --
>> Aaron O. Rosen
>> Masters Student - Network Communication
>> 306B Fluor Daniel
>>
>>
>
>
>
> --
> Aaron O. Rosen
> Masters Student - Network Communication
> 306B Fluor Daniel
>
>
>
diff --git a/datapath/datapath.c b/datapath/datapath.c
index 0b6e2e5..4babac8 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -655,14 +655,30 @@ static int ovs_packet_cmd_execute(struct sk_buff *skb, struct genl_info *info)
int key_len;
err = -EINVAL;
+
+ if (!a[OVS_PACKET_ATTR_PACKET])
+ pr_err("No OVS_PACKET_ATTR_PACKET\n");
+
+ if (!a[OVS_PACKET_ATTR_KEY])
+ pr_err("No OVS_PACKET_ATTR_KEY\n");
+
+ if (!a[OVS_PACKET_ATTR_ACTIONS])
+ pr_err("No OVS_PACKET_ATTR_ACTIONS\n");
+
+ if (nla_len(a[OVS_PACKET_ATTR_PACKET]) < ETH_HLEN)
+ pr_err("OVS_PACKET_ATTR_PACKET too short (%d)\n",
+ nla_len(a[OVS_PACKET_ATTR_PACKET]));
+
if (!a[OVS_PACKET_ATTR_PACKET] || !a[OVS_PACKET_ATTR_KEY] ||
!a[OVS_PACKET_ATTR_ACTIONS] ||
nla_len(a[OVS_PACKET_ATTR_PACKET]) < ETH_HLEN)
goto err;
err = validate_actions(a[OVS_PACKET_ATTR_ACTIONS]);
- if (err)
+ if (err) {
+ pr_err("validate_actions failed\n");
goto err;
+ }
len = nla_len(a[OVS_PACKET_ATTR_PACKET]);
packet = __dev_alloc_skb(NET_IP_ALIGN + len, GFP_KERNEL);
@@ -698,8 +714,10 @@ static int ovs_packet_cmd_execute(struct sk_buff *skb, struct genl_info *info)
err = flow_metadata_from_nlattrs(&flow->key.eth.in_port,
&flow->key.eth.tun_id,
a[OVS_PACKET_ATTR_KEY]);
- if (err)
+ if (err) {
+ pr_err("flow_metadata_from_nlattrs failed\n");
goto err_flow_put;
+ }
acts = flow_actions_alloc(a[OVS_PACKET_ATTR_ACTIONS]);
err = PTR_ERR(acts);
_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss