From: Holger Eitzenberger <holger@eitzenberger.org>
To: David Miller <davem@davemloft.net>
Cc: Jay Vosburgh <fubar@us.ibm.com>, netdev@vger.kernel.org
Subject: [patch 08/10] 802.3ad: remove public lacpdu_header
Date: Tue, 23 Dec 2008 23:01:09 +0100 [thread overview]
Message-ID: <20081223220600.479443201@jonathan.eitzenberger.org> (raw)
In-Reply-To: 20081223220101.747816175@jonathan.eitzenberger.org
[-- Attachment #1: bonding-3ad-remove-lacpdu_header.diff --]
[-- Type: text/plain, Size: 3232 bytes --]
It's strictly not necessary to define lacpdu_header in an include
file because it's only used in ad_lacpdu_send(). Remove that definition
and use an unnamed structure instead just for our purpose. Which also
gives a chance to use shorter names which are still descriptive.
As the port is left unmodified it's now const.
Also cleanup that function a bit by removing useless braces around
one-liners and turn C++ style comments into C comments.
Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Index: bonding-2.6/drivers/net/bonding/bond_3ad.c
===================================================================
--- bonding-2.6.orig/drivers/net/bonding/bond_3ad.c
+++ bonding-2.6/drivers/net/bonding/bond_3ad.c
@@ -98,7 +98,6 @@ static const int ad_delta_in_ticks = (AD
static const u8 lacpdu_mcast_addr[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
// ================= main 802.3ad protocol functions ==================
-static int ad_lacpdu_send(struct port *port);
static int ad_marker_send(struct port *port, struct bond_marker *marker);
static void ad_mux_machine(struct port *port);
static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port);
@@ -820,17 +819,19 @@ static inline void __update_lacpdu_from_
* Returns: 0 on success
* < 0 on error
*/
-static int ad_lacpdu_send(struct port *port)
+static int ad_lacpdu_send(const struct port *port)
{
struct slave *slave = port->slave;
struct sk_buff *skb;
- struct lacpdu_header *lacpdu_header;
- int length = sizeof(struct lacpdu_header);
+ struct {
+ struct ethhdr hdr;
+ struct lacpdu lacpdu;
+ } __packed *pdu;
+ int len = sizeof(*pdu);
- skb = dev_alloc_skb(length);
- if (!skb) {
+ skb = dev_alloc_skb(len);
+ if (skb == NULL)
return -ENOMEM;
- }
skb->dev = slave->dev;
skb_reset_mac_header(skb);
@@ -838,15 +839,15 @@ static int ad_lacpdu_send(struct port *p
skb->protocol = PKT_TYPE_LACPDU;
skb->priority = TC_PRIO_CONTROL;
- lacpdu_header = (struct lacpdu_header *)skb_put(skb, length);
+ pdu = (void *)skb_put(skb, len);
- memcpy(lacpdu_header->hdr.h_dest, lacpdu_mcast_addr, ETH_ALEN);
+ memcpy(pdu->hdr.h_dest, lacpdu_mcast_addr, ETH_ALEN);
/* Note: source addres is set to be the member's PERMANENT address,
because we use it to identify loopback lacpdus in receive. */
- memcpy(lacpdu_header->hdr.h_source, slave->perm_hwaddr, ETH_ALEN);
- lacpdu_header->hdr.h_proto = PKT_TYPE_LACPDU;
+ memcpy(pdu->hdr.h_source, slave->perm_hwaddr, ETH_ALEN);
+ pdu->hdr.h_proto = PKT_TYPE_LACPDU;
- lacpdu_header->lacpdu = port->lacpdu; // struct copy
+ memcpy(&pdu->lacpdu, &port->lacpdu, sizeof(pdu->lacpdu));
dev_queue_xmit(skb);
Index: bonding-2.6/drivers/net/bonding/bond_3ad.h
===================================================================
--- bonding-2.6.orig/drivers/net/bonding/bond_3ad.h
+++ bonding-2.6/drivers/net/bonding/bond_3ad.h
@@ -136,11 +136,6 @@ typedef struct lacpdu {
u8 reserved_50[50]; // = 0
} lacpdu_t;
-typedef struct lacpdu_header {
- struct ethhdr hdr;
- struct lacpdu lacpdu;
-} lacpdu_header_t;
-
// Marker Protocol Data Unit(PDU) structure(43.5.3.2 in the 802.3ad standard)
typedef struct bond_marker {
u8 subtype; // = 0x02 (marker PDU)
--
next prev parent reply other threads:[~2008-12-23 22:06 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-23 22:01 [patch 00/10] bonding updates for net-next-2.6 Holger Eitzenberger
2008-12-23 22:01 ` [patch 01/10] 802.3ad: make ntt bool Holger Eitzenberger
2008-12-26 19:18 ` David Miller
2008-12-23 22:01 ` [patch 02/10] 802.3ad: turn ports is_enabled into a bool Holger Eitzenberger
2008-12-26 21:27 ` David Miller
2008-12-23 22:01 ` [patch 03/10] 802.3ad: turn ports is_individual " Holger Eitzenberger
2008-12-26 21:27 ` David Miller
2008-12-23 22:01 ` [patch 04/10] 802.3ad: remove typedef around ad_system Holger Eitzenberger
2008-12-26 21:28 ` David Miller
2008-12-23 22:01 ` [patch 05/10] 802.3ad: initialize ports LACPDU from const initializer Holger Eitzenberger
2008-12-26 21:28 ` David Miller
2008-12-23 22:01 ` [patch 06/10] 802.3ad: generalize out mac address initializer Holger Eitzenberger
2008-12-26 21:40 ` David Miller
2008-12-23 22:01 ` [patch 07/10] 802.3ad: use standard ethhdr instead of ad_header Holger Eitzenberger
2008-12-26 21:41 ` David Miller
2008-12-23 22:01 ` Holger Eitzenberger [this message]
2008-12-26 21:43 ` [patch 08/10] 802.3ad: remove public lacpdu_header David Miller
2008-12-26 21:45 ` David Miller
2008-12-29 16:15 ` Holger Eitzenberger
2008-12-23 22:01 ` [patch 09/10] 802.3ad: remove public bond_marker_header Holger Eitzenberger
2008-12-23 22:01 ` [patch 10/10] 802.3ad: cleanup around lacpdu and bond_marker Holger Eitzenberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081223220600.479443201@jonathan.eitzenberger.org \
--to=holger@eitzenberger.org \
--cc=davem@davemloft.net \
--cc=fubar@us.ibm.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).