From 2a910c50fad8f86b38d2f94f09e8f8e10c0ec7c8 Mon Sep 17 00:00:00 2001 From: Justin Pettit Date: Sat, 20 Feb 2010 19:50:14 -0800 Subject: [PATCH] dpif-netdev: Clarify function to modify VLAN TCI field --- lib/dpif-netdev.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index ac0a8caac..e19cb34a2 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -1080,6 +1080,15 @@ dp_netdev_wait(void) } } + +/* Modify the TCI field of 'packet'. If a VLAN tag is not present, one + * is added with the TCI field set to 'tci'. If a VLAN tag is present, + * then 'mask' bits are cleared before 'tci' is logically OR'd into the + * TCI field. + * + * Note that the function does not ensure that 'tci' does not affect + * bits outside of 'mask'. + */ static void dp_netdev_modify_vlan_tci(struct ofpbuf *packet, flow_t *key, uint16_t tci, uint16_t mask) @@ -1087,7 +1096,7 @@ dp_netdev_modify_vlan_tci(struct ofpbuf *packet, flow_t *key, struct vlan_eth_header *veh; if (key->dl_vlan != htons(ODP_VLAN_NONE)) { - /* Modify 'mask' bits, but maintain other TCI bits. */ + /* Clear 'mask' bits, but maintain other TCI bits. */ veh = packet->l2; veh->veth_tci &= ~htons(mask); veh->veth_tci |= htons(tci); -- 2.43.0