From patchwork Tue Dec 23 22:01:06 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: holger@eitzenberger.org X-Patchwork-Id: 15481 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 03C90DDF4C for ; Wed, 24 Dec 2008 09:06:12 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752166AbYLWWGJ (ORCPT ); Tue, 23 Dec 2008 17:06:09 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752097AbYLWWGH (ORCPT ); Tue, 23 Dec 2008 17:06:07 -0500 Received: from moutng.kundenserver.de ([212.227.17.10]:62809 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751906AbYLWWGB (ORCPT ); Tue, 23 Dec 2008 17:06:01 -0500 Received: from kruemel.eitzenberger.org (p54AD34A1.dip0.t-ipconnect.de [84.173.52.161]) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis) id 0MKwh2-1LFFO23UVM-0002xE; Tue, 23 Dec 2008 23:05:59 +0100 Received: from [192.168.11.10] (helo=jonathan.eitzenberger.org ident=holger) by kruemel.eitzenberger.org with smtp (Exim 4.50) id 1LFFO1-0005Rx-5f; Tue, 23 Dec 2008 23:05:58 +0100 Received: by jonathan.eitzenberger.org (sSMTP sendmail emulation); Tue, 23 Dec 2008 23:05:56 +0100 Message-Id: <20081223220556.302688266@jonathan.eitzenberger.org> References: <20081223220101.747816175@jonathan.eitzenberger.org> User-Agent: quilt/0.46-1 Date: Tue, 23 Dec 2008 23:01:06 +0100 From: Holger Eitzenberger To: David Miller Cc: Jay Vosburgh , netdev@vger.kernel.org Subject: [patch 05/10] 802.3ad: initialize ports LACPDU from const initializer Content-Disposition: inline; filename=bonding-3ad-initialize_lacpdu-initializer.diff X-Provags-ID: V01U2FsdGVkX18ZRc+jNhpGZLt1QqqZz4HeDqUUb69wlB52jcR VJblqATpuH9CDYnCHoJsW1DR1nxNOpU1B10fAiOROG4PTKxrNV kBdAWf0llqtrqMQOrvK2RCrCz3IirMCqlnu6MKYX0o= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Save some text by initializing ports LACPDU from const initializer, then get rid of ad_initialize_lacpdu(). Signed-off-by: Holger Eitzenberger 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 @@ -107,7 +107,6 @@ static void ad_agg_selection_logic(struc static void ad_clear_agg(struct aggregator *aggregator); static void ad_initialize_agg(struct aggregator *aggregator); static void ad_initialize_port(struct port *port, int lacp_fast); -static void ad_initialize_lacpdu(struct lacpdu *Lacpdu); static void ad_enable_collecting_distributing(struct port *port); static void ad_disable_collecting_distributing(struct port *port); static void ad_marker_info_received(struct bond_marker *marker_info, struct port *port); @@ -1659,6 +1658,17 @@ static void ad_initialize_port(struct po .port_priority = 0xff, .port_state = 1, }; + static const struct lacpdu lacpdu = { + .subtype = 0x01, + .version_number = 0x01, + .tlv_type_actor_info = 0x01, + .actor_information_length = 0x14, + .tlv_type_partner_info = 0x02, + .partner_information_length = 0x14, + .tlv_type_collector_info = 0x03, + .collector_information_length = 0x10, + .collector_max_delay = htons(AD_COLLECTOR_MAX_DELAY), + }; if (port) { port->actor_port_number = 1; @@ -1695,7 +1705,7 @@ static void ad_initialize_port(struct po port->next_port_in_aggregator = NULL; port->transaction_id = 0; - ad_initialize_lacpdu(&(port->lacpdu)); + memcpy(&port->lacpdu, &lacpdu, sizeof(lacpdu)); } } @@ -1804,53 +1814,6 @@ static void ad_marker_response_received( // DO NOTHING, SINCE WE DECIDED NOT TO IMPLEMENT THIS FEATURE FOR NOW } -/** - * ad_initialize_lacpdu - initialize a given lacpdu structure - * @lacpdu: lacpdu structure to initialize - * - */ -static void ad_initialize_lacpdu(struct lacpdu *lacpdu) -{ - u16 index; - - // initialize lacpdu data - lacpdu->subtype = 0x01; - lacpdu->version_number = 0x01; - lacpdu->tlv_type_actor_info = 0x01; - lacpdu->actor_information_length = 0x14; - // lacpdu->actor_system_priority updated on send - // lacpdu->actor_system updated on send - // lacpdu->actor_key updated on send - // lacpdu->actor_port_priority updated on send - // lacpdu->actor_port updated on send - // lacpdu->actor_state updated on send - lacpdu->tlv_type_partner_info = 0x02; - lacpdu->partner_information_length = 0x14; - for (index=0; index<=2; index++) { - lacpdu->reserved_3_1[index]=0; - } - // lacpdu->partner_system_priority updated on send - // lacpdu->partner_system updated on send - // lacpdu->partner_key updated on send - // lacpdu->partner_port_priority updated on send - // lacpdu->partner_port updated on send - // lacpdu->partner_state updated on send - for (index=0; index<=2; index++) { - lacpdu->reserved_3_2[index]=0; - } - lacpdu->tlv_type_collector_info = 0x03; - lacpdu->collector_information_length= 0x10; - lacpdu->collector_max_delay = htons(AD_COLLECTOR_MAX_DELAY); - for (index=0; index<=11; index++) { - lacpdu->reserved_12[index]=0; - } - lacpdu->tlv_type_terminator = 0x00; - lacpdu->terminator_length = 0; - for (index=0; index<=49; index++) { - lacpdu->reserved_50[index]=0; - } -} - ////////////////////////////////////////////////////////////////////////////////////// // ================= AD exported functions to the main bonding code ================== //////////////////////////////////////////////////////////////////////////////////////