aboutsummaryrefslogtreecommitdiff
path: root/lib/bond.c
diff options
context:
space:
mode:
authorPravin Shelar <pshelar@nicira.com>2011-09-09 18:13:26 -0700
committerPravin Shelar <pshelar@nicira.com>2011-09-09 18:13:26 -0700
commitd9065a90b6b955aa38586c952e8804ca7a22547e (patch)
tree76f07c99c491ccbfc247fc52961e05b56ec53b04 /lib/bond.c
parentf37c91c76785e335e9d89aa31a7f0ab290223193 (diff)
datapath: VLAN actions should use push/pop semantics
Currently the kernel vlan actions mirror those used by OpenFlow 1.0. i.e. MODIFY and STRIP. More flexible approach is to have an action to push a tag and pop a tag off, so that it can handle multiple levels of vlan tags. Plus it aligns with newer version of OpenFlow. As this patch replaces MODIFY with PUSH semantic, action mapping done in userpace is fixed accordingly. GSO handling for multiple levels of vlan tags is also added as Jesse suggested before. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
Diffstat (limited to 'lib/bond.c')
-rw-r--r--lib/bond.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/bond.c b/lib/bond.c
index ae914dd9..5b984fb5 100644
--- a/lib/bond.c
+++ b/lib/bond.c
@@ -532,7 +532,7 @@ bond_send_learning_packet(struct bond *bond,
compose_benign_packet(&packet, "Open vSwitch Bond Failover", 0xf177,
eth_src);
if (vlan) {
- eth_set_vlan_tci(&packet, htons(vlan));
+ eth_push_vlan(&packet, htons(vlan));
}
error = netdev_send(slave->netdev, &packet);
ofpbuf_uninit(&packet);