提交 d3ab3ffd 编写于 作者: V Veaceslav Falico 提交者: David S. Miller

bonding: use rlb_client_info->vlan_id instead of ->tag

Store VID in ->vlan_id (if any), and remove the useless ->tag.

CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: NVeaceslav Falico <vfalico@redhat.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 6f477d42
...@@ -512,7 +512,7 @@ static void rlb_update_client(struct rlb_client_info *client_info) ...@@ -512,7 +512,7 @@ static void rlb_update_client(struct rlb_client_info *client_info)
skb->dev = client_info->slave->dev; skb->dev = client_info->slave->dev;
if (client_info->tag) { if (client_info->vlan_id) {
skb = vlan_put_tag(skb, htons(ETH_P_8021Q), client_info->vlan_id); skb = vlan_put_tag(skb, htons(ETH_P_8021Q), client_info->vlan_id);
if (!skb) { if (!skb) {
pr_err("%s: Error: failed to insert VLAN tag\n", pr_err("%s: Error: failed to insert VLAN tag\n",
...@@ -695,7 +695,7 @@ static struct slave *rlb_choose_channel(struct sk_buff *skb, struct bonding *bon ...@@ -695,7 +695,7 @@ static struct slave *rlb_choose_channel(struct sk_buff *skb, struct bonding *bon
} }
if (!vlan_get_tag(skb, &client_info->vlan_id)) if (!vlan_get_tag(skb, &client_info->vlan_id))
client_info->tag = 1; client_info->vlan_id = 0;
if (!client_info->assigned) { if (!client_info->assigned) {
u32 prev_tbl_head = bond_info->rx_hashtbl_used_head; u32 prev_tbl_head = bond_info->rx_hashtbl_used_head;
...@@ -801,7 +801,7 @@ static void rlb_init_table_entry_dst(struct rlb_client_info *entry) ...@@ -801,7 +801,7 @@ static void rlb_init_table_entry_dst(struct rlb_client_info *entry)
entry->used_prev = RLB_NULL_INDEX; entry->used_prev = RLB_NULL_INDEX;
entry->assigned = 0; entry->assigned = 0;
entry->slave = NULL; entry->slave = NULL;
entry->tag = 0; entry->vlan_id = 0;
} }
static void rlb_init_table_entry_src(struct rlb_client_info *entry) static void rlb_init_table_entry_src(struct rlb_client_info *entry)
{ {
...@@ -958,7 +958,7 @@ static void rlb_clear_vlan(struct bonding *bond, unsigned short vlan_id) ...@@ -958,7 +958,7 @@ static void rlb_clear_vlan(struct bonding *bond, unsigned short vlan_id)
struct rlb_client_info *curr = &(bond_info->rx_hashtbl[curr_index]); struct rlb_client_info *curr = &(bond_info->rx_hashtbl[curr_index]);
u32 next_index = bond_info->rx_hashtbl[curr_index].used_next; u32 next_index = bond_info->rx_hashtbl[curr_index].used_next;
if (curr->tag && (curr->vlan_id == vlan_id)) if (curr->vlan_id == vlan_id)
rlb_delete_table_entry(bond, curr_index); rlb_delete_table_entry(bond, curr_index);
curr_index = next_index; curr_index = next_index;
......
...@@ -125,7 +125,6 @@ struct rlb_client_info { ...@@ -125,7 +125,6 @@ struct rlb_client_info {
u8 assigned; /* checking whether this entry is assigned */ u8 assigned; /* checking whether this entry is assigned */
u8 ntt; /* flag - need to transmit client info */ u8 ntt; /* flag - need to transmit client info */
struct slave *slave; /* the slave assigned to this client */ struct slave *slave; /* the slave assigned to this client */
u8 tag; /* flag - need to tag skb */
unsigned short vlan_id; /* VLAN tag associated with IP address */ unsigned short vlan_id; /* VLAN tag associated with IP address */
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册