The iface_tag name and comment implied that it was really just a copy of
the 'tag' member of struct iface, but in fact it has a completely different
purpose: it represents the binding of a bond_entry to a particular iface.
It is invalidated when the bond_entry has to be redirected to a different
iface, not when the iface itself changes. I hope that this commit helps
to clarify.
---
vswitchd/bridge.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 3140469..34c0e78 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -122,7 +122,7 @@ struct iface {
struct bond_entry {
int iface_idx; /* Index of assigned iface, or -1 if none. */
uint64_t tx_bytes; /* Count of bytes recently transmitted. */
- tag_type iface_tag; /* Tag associated with iface_idx. */
+ tag_type tag; /* Tag for bond_entry<->iface association. */
};
enum bond_mode {
@@ -2237,9 +2237,9 @@ choose_output_iface(const struct port *port, const struct
flow *flow,
return false;
}
e->iface_idx = iface->port_ifidx;
- e->iface_tag = tag_create_random();
+ e->tag = tag_create_random();
}
- *tags |= e->iface_tag;
+ *tags |= e->tag;
iface = port->ifaces[e->iface_idx];
}
*dp_ifidx = iface->dp_ifidx;
@@ -3234,9 +3234,9 @@ bond_shift_load(struct slave_balance *from, struct
slave_balance *to,
to->tx_bytes += delta;
/* Arrange for flows to be revalidated. */
- ofproto_revalidate(port->bridge->ofproto, hash->iface_tag);
+ ofproto_revalidate(port->bridge->ofproto, hash->tag);
hash->iface_idx = to->iface->port_ifidx;
- hash->iface_tag = tag_create_random();
+ hash->tag = tag_create_random();
}
static void
@@ -3652,9 +3652,9 @@ bond_unixctl_migrate(struct unixctl_conn *conn, const
char *args_,
}
entry = &port->bond_hash[hash];
- ofproto_revalidate(port->bridge->ofproto, entry->iface_tag);
+ ofproto_revalidate(port->bridge->ofproto, entry->tag);
entry->iface_idx = iface->port_ifidx;
- entry->iface_tag = tag_create_random();
+ entry->tag = tag_create_random();
unixctl_command_reply(conn, 200, "migrated");
}
--
1.7.1
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev