aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/bonding/bond_3ad.c16
-rw-r--r--drivers/net/bonding/bond_3ad.h10
2 files changed, 8 insertions, 18 deletions
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index fb32b29751e1..8c2e5ab51f08 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -840,13 +840,11 @@ static int ad_lacpdu_send(struct port *port)
840 840
841 lacpdu_header = (struct lacpdu_header *)skb_put(skb, length); 841 lacpdu_header = (struct lacpdu_header *)skb_put(skb, length);
842 842
843 memcpy(lacpdu_header->ad_header.destination_address.mac_addr_value, 843 memcpy(lacpdu_header->hdr.h_dest, lacpdu_mcast_addr, ETH_ALEN);
844 lacpdu_mcast_addr, ETH_ALEN);
845 /* Note: source addres is set to be the member's PERMANENT address, 844 /* Note: source addres is set to be the member's PERMANENT address,
846 because we use it to identify loopback lacpdus in receive. */ 845 because we use it to identify loopback lacpdus in receive. */
847 memcpy(lacpdu_header->ad_header.source_address.mac_addr_value, 846 memcpy(lacpdu_header->hdr.h_source, slave->perm_hwaddr, ETH_ALEN);
848 slave->perm_hwaddr, ETH_ALEN); 847 lacpdu_header->hdr.h_proto = PKT_TYPE_LACPDU;
849 lacpdu_header->ad_header.length_type = PKT_TYPE_LACPDU;
850 848
851 lacpdu_header->lacpdu = port->lacpdu; // struct copy 849 lacpdu_header->lacpdu = port->lacpdu; // struct copy
852 850
@@ -884,13 +882,11 @@ static int ad_marker_send(struct port *port, struct bond_marker *marker)
884 882
885 marker_header = (struct bond_marker_header *)skb_put(skb, length); 883 marker_header = (struct bond_marker_header *)skb_put(skb, length);
886 884
887 memcpy(marker_header->ad_header.destination_address.mac_addr_value, 885 memcpy(marker_header->hdr.h_dest, lacpdu_mcast_addr, ETH_ALEN);
888 lacpdu_mcast_addr, ETH_ALEN);
889 /* Note: source addres is set to be the member's PERMANENT address, 886 /* Note: source addres is set to be the member's PERMANENT address,
890 because we use it to identify loopback MARKERs in receive. */ 887 because we use it to identify loopback MARKERs in receive. */
891 memcpy(marker_header->ad_header.source_address.mac_addr_value, 888 memcpy(marker_header->hdr.h_source, slave->perm_hwaddr, ETH_ALEN);
892 slave->perm_hwaddr, ETH_ALEN); 889 marker_header->hdr.h_proto = PKT_TYPE_LACPDU;
893 marker_header->ad_header.length_type = PKT_TYPE_LACPDU;
894 890
895 marker_header->marker = *marker; // struct copy 891 marker_header->marker = *marker; // struct copy
896 892
diff --git a/drivers/net/bonding/bond_3ad.h b/drivers/net/bonding/bond_3ad.h
index 3aab1c2b3f00..8a83eb283c21 100644
--- a/drivers/net/bonding/bond_3ad.h
+++ b/drivers/net/bonding/bond_3ad.h
@@ -105,12 +105,6 @@ typedef enum {
105 105
106#pragma pack(1) 106#pragma pack(1)
107 107
108typedef struct ad_header {
109 struct mac_addr destination_address;
110 struct mac_addr source_address;
111 __be16 length_type;
112} ad_header_t;
113
114// Link Aggregation Control Protocol(LACP) data unit structure(43.4.2.2 in the 802.3ad standard) 108// Link Aggregation Control Protocol(LACP) data unit structure(43.4.2.2 in the 802.3ad standard)
115typedef struct lacpdu { 109typedef struct lacpdu {
116 u8 subtype; // = LACP(= 0x01) 110 u8 subtype; // = LACP(= 0x01)
@@ -143,7 +137,7 @@ typedef struct lacpdu {
143} lacpdu_t; 137} lacpdu_t;
144 138
145typedef struct lacpdu_header { 139typedef struct lacpdu_header {
146 struct ad_header ad_header; 140 struct ethhdr hdr;
147 struct lacpdu lacpdu; 141 struct lacpdu lacpdu;
148} lacpdu_header_t; 142} lacpdu_header_t;
149 143
@@ -164,7 +158,7 @@ typedef struct bond_marker {
164} bond_marker_t; 158} bond_marker_t;
165 159
166typedef struct bond_marker_header { 160typedef struct bond_marker_header {
167 struct ad_header ad_header; 161 struct ethhdr hdr;
168 struct bond_marker marker; 162 struct bond_marker marker;
169} bond_marker_header_t; 163} bond_marker_header_t;
170 164