#include <linux/rculist.h>
#include <linux/workqueue.h>
#include <linux/dmi.h>
+#include <net/inet_ecn.h>
#include <net/llc.h>
#include "openvswitch/datapath-protocol.h"
* in dp_frame_hook(). In turn dp_frame_hook() can reject them
* back to network stack, but that's a waste of time. */
}
+ dev_disable_lro(dev);
rcu_assign_pointer(dp->ports[port_no], p);
list_add_rcu(&p->node, &dp->port_list);
dp->n_ports++;
static void
do_port_input(struct net_bridge_port *p, struct sk_buff *skb)
{
+ /* LRO isn't suitable for bridging. We turn it off but make sure
+ * that it wasn't reactivated. */
+ if (skb_warn_if_lro(skb))
+ return;
+
/* Make our own copy of the packet. Otherwise we will mangle the
* packet for anyone who came before us (e.g. tcpdump via AF_PACKET).
* (No one comes after us, since we tell handle_bridge() that we took
return -EINVAL;
break;
+ case ODPAT_SET_NW_TOS:
+ if (a->nw_tos.nw_tos & INET_ECN_MASK)
+ return -EINVAL;
+ break;
+
default:
if (a->type >= ODPAT_N_ACTIONS)
return -EOPNOTSUPP;