From patchwork Tue Dec 21 19:57:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105312 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9C322A034C; Tue, 21 Dec 2021 20:58:12 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0A307410E4; Tue, 21 Dec 2021 20:58:07 +0100 (CET) Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by mails.dpdk.org (Postfix) with ESMTP id F1DB340040 for ; Tue, 21 Dec 2021 20:58:04 +0100 (CET) Received: by mail-qv1-f41.google.com with SMTP id a9so254414qvd.12 for ; Tue, 21 Dec 2021 11:58:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=D7T1rqiTT72N5f3lEExzbyDKjj7QJskjU5utTb9AvW0=; b=q4qlu2WYOme9L39xasTtz2SCYL1yZRvoJIXzLVdrrgnya6vcUh0LDiKpXtg5EvXMZ2 zoq7LjerYkpo8pymIzt7oy0p5UU9i4AM/Cy/7cfhpwaDMC+bbU2zgLtkuDuaEn2wCoYD hMZfSnUCg/nW9spgM6Qk2g9N7ZZnD+cLywI8YYia1YuJ2ISZPS2Fat+LTzLphLDBsIpl uSndLFQoINGXzoJonC0kISQq7cXs5+0F+Wq2lfZmQvrRjsrDErjVJaF1yCn3mKOQe/Xw DDUBmnxbektCmCp6ZesjC72V6ommM0RwgmcLk87zBoEFXpwUXFnLwUg6Wi/TFq8/Lo4N kjjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=D7T1rqiTT72N5f3lEExzbyDKjj7QJskjU5utTb9AvW0=; b=8Ifbt7qrEzL0g4sXZb5kV+H4Hzx637/oAgiJR7SHTV6+ML76tS2H3zQ2MaJzVirGDS +W+38HB6d63knJzICGgDt+nVRUz0yKUwpDA36iD0TgYbgGSKeQIyLKTHpeHVMBfaY1cs FbGgpexh1mlskLjYogskC01nn/OMjnK8/17FDQ8aL3siR+hsKD267XXVJbt2uOrw2Z7z 2hzu/IRdVJ+y1+P8KU4FU9Z4kgILQ413egMZ3QUnKpNclHMbto05Cobtw4VobxFWaFqt +XIRyn+ODIFpR6qWJmsfwQBMDCRVZ8+mWL3Gud+xBg7KkY8q+MNW81d/Wqmd7ERz1BxP BbGA== X-Gm-Message-State: AOAM533pwYjGeHK9VMNZIBlyX+1DPKdiS4TLo056iXYZdiCfWnMFRTrt 5zD7EGb4/tmt8lB3sfDUDlcXoRnJ7GhX4Q== X-Google-Smtp-Source: ABdhPJymAKNJ/vb5M47HGHEehuIHVOynr569IwePmmwlDwpLI4YTkf+K74fG+wEPrXgjQOv/Qoi9MQ== X-Received: by 2002:ad4:5bc3:: with SMTP id t3mr3854074qvt.47.1640116684134; Tue, 21 Dec 2021 11:58:04 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:03 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 1/8] net/bonding: fix typos and whitespace Date: Tue, 21 Dec 2021 14:57:23 -0500 Message-Id: <1640116650-3475-2-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Clean up minor typos in comments, strings, and private names. - Fix whitespace in log messages and function formatting (new line before open brace). - Move closing C++ wrapper to the end of rte_eth_bond_8023ad.h. Signed-off-by: Robert Sanford --- app/test-pmd/cmdline.c | 4 ++-- app/test/test_link_bonding_mode4.c | 28 +++++++++++++-------------- drivers/net/bonding/eth_bond_8023ad_private.h | 12 ++++++------ drivers/net/bonding/rte_eth_bond_8023ad.c | 22 ++++++++++----------- drivers/net/bonding/rte_eth_bond_8023ad.h | 15 +++++++------- drivers/net/bonding/rte_eth_bond_pmd.c | 13 ++++++++----- 6 files changed, 49 insertions(+), 45 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 6e10afe..9fd2c2a 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -630,8 +630,8 @@ static void cmd_help_long_parsed(void *parsed_result, "set bonding mac_addr (port_id) (address)\n" " Set the MAC address of a bonded device.\n\n" - "set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)" - " Set Aggregation mode for IEEE802.3AD (mode 4)" + "set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n" + " Set Aggregation mode for IEEE802.3AD (mode 4)\n\n" "set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n" " Set the transmit balance policy for bonded device running in balance mode.\n\n" diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c index 351129d..2be86d5 100644 --- a/app/test/test_link_bonding_mode4.c +++ b/app/test/test_link_bonding_mode4.c @@ -58,11 +58,11 @@ static const struct rte_ether_addr slave_mac_default = { { 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00 } }; -static const struct rte_ether_addr parnter_mac_default = { +static const struct rte_ether_addr partner_mac_default = { { 0x22, 0xBB, 0xFF, 0xBB, 0x00, 0x00 } }; -static const struct rte_ether_addr parnter_system = { +static const struct rte_ether_addr partner_system = { { 0x33, 0xFF, 0xBB, 0xFF, 0x00, 0x00 } }; @@ -76,7 +76,7 @@ struct slave_conf { uint16_t port_id; uint8_t bonded : 1; - uint8_t lacp_parnter_state; + uint8_t lacp_partner_state; }; struct ether_vlan_hdr { @@ -258,7 +258,7 @@ add_slave(struct slave_conf *slave, uint8_t start) TEST_ASSERT_EQUAL(rte_is_same_ether_addr(&addr, &addr_check), 1, "Slave MAC address is not as expected"); - RTE_VERIFY(slave->lacp_parnter_state == 0); + RTE_VERIFY(slave->lacp_partner_state == 0); return 0; } @@ -288,7 +288,7 @@ remove_slave(struct slave_conf *slave) test_params.bonded_port_id); slave->bonded = 0; - slave->lacp_parnter_state = 0; + slave->lacp_partner_state = 0; return 0; } @@ -501,20 +501,20 @@ make_lacp_reply(struct slave_conf *slave, struct rte_mbuf *pkt) slow_hdr = rte_pktmbuf_mtod(pkt, struct slow_protocol_frame *); /* Change source address to partner address */ - rte_ether_addr_copy(&parnter_mac_default, &slow_hdr->eth_hdr.src_addr); + rte_ether_addr_copy(&partner_mac_default, &slow_hdr->eth_hdr.src_addr); slow_hdr->eth_hdr.src_addr.addr_bytes[RTE_ETHER_ADDR_LEN - 1] = slave->port_id; lacp = (struct lacpdu *) &slow_hdr->slow_protocol; /* Save last received state */ - slave->lacp_parnter_state = lacp->actor.state; + slave->lacp_partner_state = lacp->actor.state; /* Change it into LACP replay by matching parameters. */ memcpy(&lacp->partner.port_params, &lacp->actor.port_params, sizeof(struct port_params)); lacp->partner.state = lacp->actor.state; - rte_ether_addr_copy(&parnter_system, &lacp->actor.port_params.system); + rte_ether_addr_copy(&partner_system, &lacp->actor.port_params.system); lacp->actor.state = STATE_LACP_ACTIVE | STATE_SYNCHRONIZATION | STATE_AGGREGATION | @@ -580,7 +580,7 @@ bond_handshake_done(struct slave_conf *slave) const uint8_t expected_state = STATE_LACP_ACTIVE | STATE_SYNCHRONIZATION | STATE_AGGREGATION | STATE_COLLECTING | STATE_DISTRIBUTING; - return slave->lacp_parnter_state == expected_state; + return slave->lacp_partner_state == expected_state; } static unsigned @@ -1165,7 +1165,7 @@ init_marker(struct rte_mbuf *pkt, struct slave_conf *slave) &marker_hdr->eth_hdr.dst_addr); /* Init source address */ - rte_ether_addr_copy(&parnter_mac_default, + rte_ether_addr_copy(&partner_mac_default, &marker_hdr->eth_hdr.src_addr); marker_hdr->eth_hdr.src_addr.addr_bytes[RTE_ETHER_ADDR_LEN - 1] = slave->port_id; @@ -1353,7 +1353,7 @@ test_mode4_expired(void) /* After test only expected slave should be in EXPIRED state */ FOR_EACH_SLAVE(i, slave) { if (slave == exp_slave) - TEST_ASSERT(slave->lacp_parnter_state & STATE_EXPIRED, + TEST_ASSERT(slave->lacp_partner_state & STATE_EXPIRED, "Slave %u should be in expired.", slave->port_id); else TEST_ASSERT_EQUAL(bond_handshake_done(slave), 1, @@ -1392,7 +1392,7 @@ test_mode4_ext_ctrl(void) }, }; - rte_ether_addr_copy(&parnter_system, &src_mac); + rte_ether_addr_copy(&partner_system, &src_mac); rte_ether_addr_copy(&slow_protocol_mac_addr, &dst_mac); initialize_eth_header(&lacpdu.eth_hdr, &src_mac, &dst_mac, @@ -1446,7 +1446,7 @@ test_mode4_ext_lacp(void) }, }; - rte_ether_addr_copy(&parnter_system, &src_mac); + rte_ether_addr_copy(&partner_system, &src_mac); rte_ether_addr_copy(&slow_protocol_mac_addr, &dst_mac); initialize_eth_header(&lacpdu.eth_hdr, &src_mac, &dst_mac, @@ -1535,7 +1535,7 @@ check_environment(void) if (port->bonded != 0) env_state |= 0x04; - if (port->lacp_parnter_state != 0) + if (port->lacp_partner_state != 0) env_state |= 0x08; if (env_state != 0) diff --git a/drivers/net/bonding/eth_bond_8023ad_private.h b/drivers/net/bonding/eth_bond_8023ad_private.h index 9b5738a..60db31e 100644 --- a/drivers/net/bonding/eth_bond_8023ad_private.h +++ b/drivers/net/bonding/eth_bond_8023ad_private.h @@ -15,12 +15,12 @@ #include "rte_eth_bond_8023ad.h" #define BOND_MODE_8023AX_UPDATE_TIMEOUT_MS 100 -/** Maximum number of packets to one slave queued in TX ring. */ +/** Maximum number of packets to one slave queued in RX ring. */ #define BOND_MODE_8023AX_SLAVE_RX_PKTS 3 /** Maximum number of LACP packets from one slave queued in TX ring. */ #define BOND_MODE_8023AX_SLAVE_TX_PKTS 1 /** - * Timeouts deffinitions (5.4.4 in 802.1AX documentation). + * Timeouts definitions (6.4.4 in 802.1AX documentation). */ #define BOND_8023AD_FAST_PERIODIC_MS 900 #define BOND_8023AD_SLOW_PERIODIC_MS 29000 @@ -34,7 +34,7 @@ /** * Interval of showing warning message from state machines. All messages will * be held (and gathered together) to prevent flooding. - * This is no parto of 802.1AX standard. + * This is not part of 802.1AX standard. */ #define BOND_8023AD_WARNINGS_PERIOD_MS 1000 @@ -83,7 +83,7 @@ #define PARTNER_STATE_SET(_p, _f) SET_FLAGS((_p)->partner_state, STATE_ ## _f) #define PARTNER_STATE_CLR(_p, _f) CLEAR_FLAGS((_p)->partner_state, STATE_ ## _f) -/** Variables associated with each port (5.4.7 in 802.1AX documentation). */ +/** Variables associated with each port (6.4.7 in 802.1AX documentation). */ struct port { /** * The operational values of the Actor's state parameters. Bitmask @@ -124,7 +124,7 @@ struct port { uint64_t wait_while_timer; uint64_t tx_machine_timer; uint64_t tx_marker_timer; - /* Agregator parameters */ + /* Aggregator parameters */ /** Used aggregator port ID */ uint16_t aggregator_port_id; @@ -280,7 +280,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *dev, uint16_t port_id); /** * @internal * - * Denitializes and removes given slave from 802.1AX mode. + * Deinitializes and removes given slave from 802.1AX mode. * * @param dev Bonded interface. * @param slave_num Position of slave in active_slaves array diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c index ca50583..43231bc 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.c +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c @@ -207,15 +207,15 @@ show_warnings(uint16_t slave_id) if (warnings & WRN_RX_QUEUE_FULL) { RTE_BOND_LOG(DEBUG, "Slave %u: failed to enqueue LACP packet into RX ring.\n" - "Receive and transmit functions must be invoked on bonded" - "interface at least 10 times per second or LACP will notwork correctly", + "Receive and transmit functions must be invoked on bonded\n" + "interface at least 10 times per second or LACP will not work correctly", slave_id); } if (warnings & WRN_TX_QUEUE_FULL) { RTE_BOND_LOG(DEBUG, "Slave %u: failed to enqueue LACP packet into TX ring.\n" - "Receive and transmit functions must be invoked on bonded" + "Receive and transmit functions must be invoked on bonded\n" "interface at least 10 times per second or LACP will not work correctly", slave_id); } @@ -250,7 +250,7 @@ record_default(struct port *port) /** Function handles rx state machine. * - * This function implements Receive State Machine from point 5.4.12 in + * This function implements Receive State Machine from point 6.4.12 in * 802.1AX documentation. It should be called periodically. * * @param lacpdu LACPDU received. @@ -384,7 +384,7 @@ rx_machine(struct bond_dev_private *internals, uint16_t slave_id, /** * Function handles periodic tx state machine. * - * Function implements Periodic Transmission state machine from point 5.4.13 + * Function implements Periodic Transmission state machine from point 6.4.13 * in 802.1AX documentation. It should be called periodically. * * @param port Port to handle state machine. @@ -446,7 +446,7 @@ periodic_machine(struct bond_dev_private *internals, uint16_t slave_id) /** * Function handles mux state machine. * - * Function implements Mux Machine from point 5.4.15 in 802.1AX documentation. + * Function implements Mux Machine from point 6.4.15 in 802.1AX documentation. * It should be called periodically. * * @param port Port to handle state machine. @@ -549,7 +549,7 @@ mux_machine(struct bond_dev_private *internals, uint16_t slave_id) /** * Function handles transmit state machine. * - * Function implements Transmit Machine from point 5.4.16 in 802.1AX + * Function implements Transmit Machine from point 6.4.16 in 802.1AX * documentation. * * @param port @@ -1051,14 +1051,14 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, struct bond_tx_queue *bd_tx_q; uint16_t q_id; - /* Given slave mus not be in active list */ + /* Given slave must not be in active list. */ RTE_ASSERT(find_slave_by_id(internals->active_slaves, internals->active_slave_count, slave_id) == internals->active_slave_count); RTE_SET_USED(internals); /* used only for assert when enabled */ memcpy(&port->actor, &initial, sizeof(struct port_params)); - /* Standard requires that port ID must be grater than 0. - * Add 1 do get corresponding port_number */ + /* Standard requires that port ID must be greater than 0. + * Add 1 to get corresponding port_number. */ port->actor.port_number = rte_cpu_to_be_16(slave_id + 1); memcpy(&port->partner, &initial, sizeof(struct port_params)); @@ -1069,7 +1069,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, port->partner_state = STATE_LACP_ACTIVE | STATE_AGGREGATION; port->sm_flags = SM_FLAGS_BEGIN; - /* use this port as agregator */ + /* Use this port as aggregator. */ port->aggregator_port_id = slave_id; if (bond_mode_8023ad_register_lacp_mac(slave_id) < 0) { diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h index 11a71a5..7e9a018 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.h +++ b/drivers/net/bonding/rte_eth_bond_8023ad.h @@ -68,7 +68,7 @@ struct port_params { struct rte_ether_addr system; /**< System ID - Slave MAC address, same as bonding MAC address */ uint16_t key; - /**< Speed information (implementation dependednt) and duplex. */ + /**< Speed information (implementation dependent) and duplex. */ uint16_t port_priority; /**< Priority of this (unused in current implementation) */ uint16_t port_number; @@ -83,7 +83,7 @@ struct lacpdu_actor_partner_params { uint8_t reserved_3[3]; } __rte_packed __rte_aligned(2); -/** LACPDU structure (5.4.2 in 802.1AX documentation). */ +/** LACPDU structure (6.4.2 in 802.1AX documentation). */ struct lacpdu { uint8_t subtype; uint8_t version_number; @@ -153,7 +153,7 @@ struct rte_eth_bond_8023ad_slave_info { /** * @internal * - * Function returns current configuration of 802.3AX mode. + * Function returns current configuration of 802.1AX mode. * * @param port_id Bonding device id * @param conf Pointer to timeout structure. @@ -197,10 +197,6 @@ int rte_eth_bond_8023ad_slave_info(uint16_t port_id, uint16_t slave_id, struct rte_eth_bond_8023ad_slave_info *conf); -#ifdef __cplusplus -} -#endif - /** * Configure a slave port to start collecting. * @@ -331,4 +327,9 @@ rte_eth_bond_8023ad_agg_selection_get(uint16_t port_id); int rte_eth_bond_8023ad_agg_selection_set(uint16_t port_id, enum rte_bond_8023ad_agg_selection agg_selection); + +#ifdef __cplusplus +} +#endif + #endif /* RTE_ETH_BOND_8023AD_H_ */ diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 84f4900..f6003b0 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -158,7 +158,8 @@ const struct rte_flow_attr flow_attr_8023ad = { int bond_ethdev_8023ad_flow_verify(struct rte_eth_dev *bond_dev, - uint16_t slave_port) { + uint16_t slave_port) +{ struct rte_eth_dev_info slave_info; struct rte_flow_error error; struct bond_dev_private *internals = bond_dev->data->dev_private; @@ -207,7 +208,8 @@ bond_ethdev_8023ad_flow_verify(struct rte_eth_dev *bond_dev, } int -bond_8023ad_slow_pkt_hw_filter_supported(uint16_t port_id) { +bond_8023ad_slow_pkt_hw_filter_supported(uint16_t port_id) +{ struct rte_eth_dev *bond_dev = &rte_eth_devices[port_id]; struct bond_dev_private *internals = bond_dev->data->dev_private; struct rte_eth_dev_info bond_info; @@ -240,8 +242,8 @@ bond_8023ad_slow_pkt_hw_filter_supported(uint16_t port_id) { } int -bond_ethdev_8023ad_flow_set(struct rte_eth_dev *bond_dev, uint16_t slave_port) { - +bond_ethdev_8023ad_flow_set(struct rte_eth_dev *bond_dev, uint16_t slave_port) +{ struct rte_flow_error error; struct bond_dev_private *internals = bond_dev->data->dev_private; struct rte_flow_action_queue lacp_queue_conf = { @@ -809,7 +811,8 @@ struct bwg_slave { }; void -bond_tlb_activate_slave(struct bond_dev_private *internals) { +bond_tlb_activate_slave(struct bond_dev_private *internals) +{ int i; for (i = 0; i < internals->active_slave_count; i++) { From patchwork Tue Dec 21 19:57:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105313 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EA6E3A034C; Tue, 21 Dec 2021 20:58:18 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D95241101; Tue, 21 Dec 2021 20:58:08 +0100 (CET) Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by mails.dpdk.org (Postfix) with ESMTP id 7C9454003C for ; Tue, 21 Dec 2021 20:58:05 +0100 (CET) Received: by mail-qt1-f171.google.com with SMTP id t11so13949925qtw.3 for ; Tue, 21 Dec 2021 11:58:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4wHsRwq95ZrXDb40QSqc4h0hEj5ymKpB9KPN2TKm8f4=; b=PzFWlgiB0ZH2Xwkt7y94ba0QRbR0V5lQZk0eMPa54eiS582Ie2WGE9NJmbFElgzKyW JyHjoPTmsw3k7n0kIH5CqfRfKDIOOYQskMGlTjsBA3mSn2X7xWZyt1rfKB1b/4vKZvdE JBoOmT/r9UPZbJsYx5kbsi43Nsqsu2RFeEAbczEBrkSGT+7trGnqCmZQ35xU2/OLONd8 czCZTXaxJNLdQCivUUqcAUidegHAPhRkxOqhC7JAciGwL+6HXFza1rp7LbOc7NFehDtV 82IKPyOe1Axy1L0kpd+Tb28oBja6oVSg7Nm8kURcva5McKvTf7Nwgws0vUUf2aYdsVi5 6Z9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4wHsRwq95ZrXDb40QSqc4h0hEj5ymKpB9KPN2TKm8f4=; b=WqUAp2bARYl5nOUoQiu6sJgoExmeH9JM4yS40x2mXoVbA1LghEqA1E8tE4Rq+cd9FV wxQcm7P9Jx4gZ8sQcKElZWib46kQ9TBayXUgTprbNOzfpmL2NrY6SRolMiRYzZe3gf5p AP4QeBpTgxkZIHU6hHixurfiteIIq9tC6vK0Tj9+yv4VNdgtZyZqLyvu+QzEsnmh0mXb xMy4cH7G+CDYw/8rg5VT5Y9n7uu33K/+RhnzHG43WIqwP6CKyTah0kJm/CzKrIy4C96b g0NgyGWJ8ODqSye9o9+5lSofrhERE6krxX/N8ge3APqVZHQd5EdwwzX0SIqbfFX3YseG 6qvA== X-Gm-Message-State: AOAM5314xNjeMRG5cZqPsrlNkO6kWajITt+duXFmKQbKBG4gm90uxg+V HGFzXSCbh7zahAXmrcgbwr2Hebex+bxpsQ== X-Google-Smtp-Source: ABdhPJynfZAek2t+dCNee8TBpS0CUJQTqrpitJaLgMPcO7IdwZRIoQrBAWa1lP8eIIWpm1MIkxYClA== X-Received: by 2002:a05:622a:1194:: with SMTP id m20mr3616974qtk.65.1640116684891; Tue, 21 Dec 2021 11:58:04 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.04 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:04 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 2/8] net/bonding: fix bonded dev configuring slave dev Date: Tue, 21 Dec 2021 14:57:24 -0500 Message-Id: <1640116650-3475-3-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Replace directly overwriting of slave port's private rte_eth_conf by copying it, and then updating it via rte_eth_dev_configure(). Signed-off-by: Robert Sanford --- drivers/net/bonding/rte_eth_bond_pmd.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index f6003b0..b9e7439 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1691,6 +1691,7 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev, struct rte_flow_error flow_error; struct bond_dev_private *internals = bonded_eth_dev->data->dev_private; + struct rte_eth_conf dev_conf; /* Stop slave */ errval = rte_eth_dev_stop(slave_eth_dev->data->port_id); @@ -1698,34 +1699,36 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev, RTE_BOND_LOG(ERR, "rte_eth_dev_stop: port %u, err (%d)", slave_eth_dev->data->port_id, errval); + /* Start with a copy of slave's current rte_eth_conf. */ + dev_conf = slave_eth_dev->data->dev_conf; + dev_conf.rx_adv_conf.rss_conf.rss_key = NULL; + /* Enable interrupts on slave device if supported */ - if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) - slave_eth_dev->data->dev_conf.intr_conf.lsc = 1; + dev_conf.intr_conf.lsc = + (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) ? 1 : 0; /* If RSS is enabled for bonding, try to enable it for slaves */ if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS_FLAG) { /* rss_key won't be empty if RSS is configured in bonded dev */ - slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len = - internals->rss_key_len; - slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = - internals->rss_key; + dev_conf.rx_adv_conf.rss_conf.rss_key_len = + internals->rss_key_len; + dev_conf.rx_adv_conf.rss_conf.rss_key = internals->rss_key; - slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf = + dev_conf.rx_adv_conf.rss_conf.rss_hf = bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf; - slave_eth_dev->data->dev_conf.rxmode.mq_mode = + dev_conf.rxmode.mq_mode = bonded_eth_dev->data->dev_conf.rxmode.mq_mode; } if (bonded_eth_dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_FILTER) - slave_eth_dev->data->dev_conf.rxmode.offloads |= + dev_conf.rxmode.offloads |= RTE_ETH_RX_OFFLOAD_VLAN_FILTER; else - slave_eth_dev->data->dev_conf.rxmode.offloads &= + dev_conf.rxmode.offloads &= ~RTE_ETH_RX_OFFLOAD_VLAN_FILTER; - slave_eth_dev->data->dev_conf.rxmode.mtu = - bonded_eth_dev->data->dev_conf.rxmode.mtu; + dev_conf.rxmode.mtu = bonded_eth_dev->data->dev_conf.rxmode.mtu; nb_rx_queues = bonded_eth_dev->data->nb_rx_queues; nb_tx_queues = bonded_eth_dev->data->nb_tx_queues; @@ -1747,8 +1750,7 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev, /* Configure device */ errval = rte_eth_dev_configure(slave_eth_dev->data->port_id, - nb_rx_queues, nb_tx_queues, - &(slave_eth_dev->data->dev_conf)); + nb_rx_queues, nb_tx_queues, &dev_conf); if (errval != 0) { RTE_BOND_LOG(ERR, "Cannot configure slave device: port %u, err (%d)", slave_eth_dev->data->port_id, errval); From patchwork Tue Dec 21 19:57:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105314 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 56B72A034C; Tue, 21 Dec 2021 20:58:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D0F841147; Tue, 21 Dec 2021 20:58:09 +0100 (CET) Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by mails.dpdk.org (Postfix) with ESMTP id 3A0DB406A2 for ; Tue, 21 Dec 2021 20:58:06 +0100 (CET) Received: by mail-qt1-f177.google.com with SMTP id a1so13896655qtx.11 for ; Tue, 21 Dec 2021 11:58:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=//DyR/b5J0MzHHvenuvPZsKSZMid4AwTriLPC1Lsw04=; b=HkxRD/42bEn0AtqBsrPVsLbZiVDPwke/llum+wrNGTmNU9goY9BnUoQsJwplsqGxjG G91CFP2PJXIRVNM09gYktjCTvU7zE+uonKXxBEsUE3FAjncXBCK+OZxneB6oEpt/3nF/ 1Pk+qRIb2JqcQ1RcchcH9C1ClWM3wVSqOYtrh3ABRWzE11HGoGX/Sc8bnsRNZ2AiILFZ bcNqgm9Rw4M/pzvJlbchZOKcHp0hpLrG5/GuUVcHNLWTsPyVOdjNFi5CRYAUfsqDAbeq e8Z3V8BRBw0BSPgPz/MLvmur/YLOjK2NNQWBHe4JZ6wa/t/It6aJykPYKxXNQlBxwqf8 r8TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=//DyR/b5J0MzHHvenuvPZsKSZMid4AwTriLPC1Lsw04=; b=MgZocUSv184BLfZSjr7fpa23xa4PzHqRAlZvNXZE86hn2B9CFfl0uXC3k/wy9oqJQB i5jO8a30DlST5siEAnT/lhfXMFED7y+xrmrjsVATDF+g68K3hUXv7zcLwP/GYVWQJp0P jRXd8EcKju0PuzKK0Hw5EjD8VBvXvKhzx/iu4UJoz6mM0fjKmviaKQgiNFnBKAmfiJks wAZfKwi3sRTaf6pQtEGiivg9TUsoTHLO0quyiAgvGwj/M00SD1PP7IpT1aNNqWTnQ91t qtt4XokBB9IR9P+/VsZYKVVCrZBm7EIc+4DWHkX9ExsXNKgo562mtCjr+/0dEVS6oG1X gRkQ== X-Gm-Message-State: AOAM532gJg5H6qiss28jVBPk9mLrnEtiuphQ9eBFIxwh3qPX35gU/cjI HnQFlM7TGTnex717+9o5VspcQ2RlntioUQ== X-Google-Smtp-Source: ABdhPJxmI6Ev464DhjBLMd6EuHKIYOqdB6TyVsSggnfrEKMXog0ZejlR9NiSh/mFHGrTBf7BZQ6neQ== X-Received: by 2002:a05:622a:50d:: with SMTP id l13mr3721677qtx.75.1640116685625; Tue, 21 Dec 2021 11:58:05 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.04 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:05 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 3/8] net/bonding: change mbuf pool and ring creation Date: Tue, 21 Dec 2021 14:57:25 -0500 Message-Id: <1640116650-3475-4-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Turn off mbuf pool caching to avoid mbufs lingering in pool caches. At most, we transmit one LACPDU per second, per port. LACP tx_machine() performs the "get", and runs in the context of the interrupt thread (no default cache). PMD typically "puts" no more than one LACPDU per second, on average. - Create rings with RING_F_EXACT_SZ flag, so that they are the desired size, and not one less than requested. Signed-off-by: Robert Sanford --- drivers/net/bonding/rte_eth_bond_8023ad.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c index 43231bc..9ed2a46 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.c +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c @@ -1101,9 +1101,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, } snprintf(mem_name, RTE_DIM(mem_name), "slave_port%u_pool", slave_id); - port->mbuf_pool = rte_pktmbuf_pool_create(mem_name, total_tx_desc, - RTE_MEMPOOL_CACHE_MAX_SIZE >= 32 ? - 32 : RTE_MEMPOOL_CACHE_MAX_SIZE, + port->mbuf_pool = rte_pktmbuf_pool_create(mem_name, total_tx_desc, 0, 0, element_size, socket_id); /* Any memory allocation failure in initialization is critical because @@ -1115,7 +1113,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, snprintf(mem_name, RTE_DIM(mem_name), "slave_%u_rx", slave_id); port->rx_ring = rte_ring_create(mem_name, - rte_align32pow2(BOND_MODE_8023AX_SLAVE_RX_PKTS), socket_id, 0); + BOND_MODE_8023AX_SLAVE_RX_PKTS, socket_id, RING_F_EXACT_SZ); if (port->rx_ring == NULL) { rte_panic("Slave %u: Failed to create rx ring '%s': %s\n", slave_id, @@ -1125,7 +1123,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, /* TX ring is at least one pkt longer to make room for marker packet. */ snprintf(mem_name, RTE_DIM(mem_name), "slave_%u_tx", slave_id); port->tx_ring = rte_ring_create(mem_name, - rte_align32pow2(BOND_MODE_8023AX_SLAVE_TX_PKTS + 1), socket_id, 0); + BOND_MODE_8023AX_SLAVE_TX_PKTS + 1, socket_id, RING_F_EXACT_SZ); if (port->tx_ring == NULL) { rte_panic("Slave %u: Failed to create tx ring '%s': %s\n", slave_id, From patchwork Tue Dec 21 19:57:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105315 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3F937A034C; Tue, 21 Dec 2021 20:58:29 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2442741150; Tue, 21 Dec 2021 20:58:10 +0100 (CET) Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by mails.dpdk.org (Postfix) with ESMTP id 0D5B5410E6 for ; Tue, 21 Dec 2021 20:58:07 +0100 (CET) Received: by mail-qt1-f181.google.com with SMTP id a1so13896683qtx.11 for ; Tue, 21 Dec 2021 11:58:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ElSdkftuUDLqGmeithizJ8MNbXv4hF3Bob8ayOpDLyg=; b=nsV4ymoqQHnR+N1DICsUePn8DinFStrKDRQAKpUQeyqbaxWPykKXWQOpD/lGLnHaGC JTL84I648l8/tzGebvkDq9+GcFsYoCdYx5higl/qMqm8K9BDHwTfQGRt5nK94rcLO2BD fyzOWVS0cfqxaQ7NibpXKF2xFl0XIOwTq6fQb60jKCm1iDyk61/xKunvLZUitIgl6cqn dvt1b2NMgrvRe1jmaVSRh1D4nM72fntsFH6pXPj1YRVEVaJuolzMAoAX9tBl6F5C03cX 28/lpv7KeL/Jj8KrBHGR8QfG/1XDbfUpYFA+xSClz8P8ld6oeGTGR7Vx1jpTVidP+46x Sapg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ElSdkftuUDLqGmeithizJ8MNbXv4hF3Bob8ayOpDLyg=; b=n5hHztemaYmrCQhWKv8qrkHFGuiJ2KmV9opn5hIANSvIj7dG/7zQ+3iBio8L9FuEq/ asr2P2UIu85jjyy4BgkrzPmiOgRinjFemv5fT2fXzjWNhKG/AcghKVspDt7OeUNrgOOm Bsrt5Gx8iEeJ+ZC8n2yf4P7uerfu6mdoYNj63y4hxruAms9/oC++PTEZ/XHrHkxub1BD 78xyjutvReKcPW8UQmaqK/abKleO2tLxoGbHXZrrIz488l4etZCPBItmLYJzvFs0MGo9 qU7EHbxaOQ9LB5LONuGzcicpeECV7dFHhjCAnOljD2uWI7NxoBcWNczbwltDMVY9dIFN NxCg== X-Gm-Message-State: AOAM531E697IyGdyvZPifkbTfQuI38UN7EhJbgX0n8iFCs1ftUNpxwXv 72mvOX+56LV9xrAGE4I0kffTL17YpDgYWQ== X-Google-Smtp-Source: ABdhPJzIfiDE+2MFBzHFz03ExsoNR2qh96QnuZT6ceF2jTC52Hi0zh7qOYmX9fCCg4KJoGO23tdfRQ== X-Received: by 2002:ac8:5c8e:: with SMTP id r14mr3753274qta.395.1640116686421; Tue, 21 Dec 2021 11:58:06 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:06 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 4/8] net/bonding: support enabling LACP short timeout Date: Tue, 21 Dec 2021 14:57:26 -0500 Message-Id: <1640116650-3475-5-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Add support for enabling LACP short timeout, i.e., link partner can use fast periodic time interval between transmits. Signed-off-by: Robert Sanford --- drivers/net/bonding/eth_bond_8023ad_private.h | 3 ++- drivers/net/bonding/rte_eth_bond_8023ad.c | 28 +++++++++++++++++++++++---- drivers/net/bonding/rte_eth_bond_8023ad.h | 3 +++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/drivers/net/bonding/eth_bond_8023ad_private.h b/drivers/net/bonding/eth_bond_8023ad_private.h index 60db31e..bfde03c 100644 --- a/drivers/net/bonding/eth_bond_8023ad_private.h +++ b/drivers/net/bonding/eth_bond_8023ad_private.h @@ -159,7 +159,6 @@ struct mode8023ad_private { uint64_t rx_marker_timeout; uint64_t update_timeout_us; rte_eth_bond_8023ad_ext_slowrx_fn slowrx_cb; - uint8_t external_sm; struct rte_ether_addr mac_addr; struct rte_eth_link slave_link; @@ -178,6 +177,8 @@ struct mode8023ad_private { uint16_t tx_qid; } dedicated_queues; enum rte_bond_8023ad_agg_selection agg_selection; + uint8_t short_timeout_enabled : 1; + uint8_t short_timeout_updated : 1; }; /** diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c index 9ed2a46..5c175e7 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.c +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c @@ -868,10 +868,10 @@ bond_mode_8023ad_periodic_cb(void *arg) struct rte_eth_link link_info; struct rte_ether_addr slave_addr; struct rte_mbuf *lacp_pkt = NULL; + uint8_t short_timeout_updated = internals->mode4.short_timeout_updated; uint16_t slave_id; uint16_t i; - /* Update link status on each port */ for (i = 0; i < internals->active_slave_count; i++) { uint16_t key; @@ -916,6 +916,13 @@ bond_mode_8023ad_periodic_cb(void *arg) slave_id = internals->active_slaves[i]; port = &bond_mode_8023ad_ports[slave_id]; + if (short_timeout_updated) { + if (internals->mode4.short_timeout_enabled) + ACTOR_STATE_SET(port, LACP_SHORT_TIMEOUT); + else + ACTOR_STATE_CLR(port, LACP_SHORT_TIMEOUT); + } + if ((port->actor.key & rte_cpu_to_be_16(BOND_LINK_FULL_DUPLEX_KEY)) == 0) { @@ -960,6 +967,9 @@ bond_mode_8023ad_periodic_cb(void *arg) show_warnings(slave_id); } + if (short_timeout_updated) + internals->mode4.short_timeout_updated = 0; + rte_eal_alarm_set(internals->mode4.update_timeout_us, bond_mode_8023ad_periodic_cb, arg); } @@ -1054,7 +1064,6 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, /* Given slave must not be in active list. */ RTE_ASSERT(find_slave_by_id(internals->active_slaves, internals->active_slave_count, slave_id) == internals->active_slave_count); - RTE_SET_USED(internals); /* used only for assert when enabled */ memcpy(&port->actor, &initial, sizeof(struct port_params)); /* Standard requires that port ID must be greater than 0. @@ -1065,7 +1074,9 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, memcpy(&port->partner_admin, &initial, sizeof(struct port_params)); /* default states */ - port->actor_state = STATE_AGGREGATION | STATE_LACP_ACTIVE | STATE_DEFAULTED; + port->actor_state = STATE_AGGREGATION | STATE_LACP_ACTIVE | + STATE_DEFAULTED | (internals->mode4.short_timeout_enabled ? + STATE_LACP_SHORT_TIMEOUT : 0); port->partner_state = STATE_LACP_ACTIVE | STATE_AGGREGATION; port->sm_flags = SM_FLAGS_BEGIN; @@ -1209,6 +1220,7 @@ bond_mode_8023ad_conf_get(struct rte_eth_dev *dev, struct mode8023ad_private *mode4 = &internals->mode4; uint64_t ms_ticks = rte_get_tsc_hz() / 1000; + memset(conf, 0, sizeof(*conf)); conf->fast_periodic_ms = mode4->fast_periodic_timeout / ms_ticks; conf->slow_periodic_ms = mode4->slow_periodic_timeout / ms_ticks; conf->short_timeout_ms = mode4->short_timeout / ms_ticks; @@ -1219,6 +1231,7 @@ bond_mode_8023ad_conf_get(struct rte_eth_dev *dev, conf->rx_marker_period_ms = mode4->rx_marker_timeout / ms_ticks; conf->slowrx_cb = mode4->slowrx_cb; conf->agg_selection = mode4->agg_selection; + conf->lacp_timeout_control = mode4->short_timeout_enabled; } static void @@ -1234,6 +1247,7 @@ bond_mode_8023ad_conf_get_default(struct rte_eth_bond_8023ad_conf *conf) conf->update_timeout_ms = BOND_MODE_8023AX_UPDATE_TIMEOUT_MS; conf->slowrx_cb = NULL; conf->agg_selection = AGG_STABLE; + conf->lacp_timeout_control = 0; } static void @@ -1274,6 +1288,11 @@ bond_mode_8023ad_setup(struct rte_eth_dev *dev, mode4->slowrx_cb = conf->slowrx_cb; mode4->agg_selection = AGG_STABLE; + if (mode4->short_timeout_enabled != conf->lacp_timeout_control) { + mode4->short_timeout_enabled = conf->lacp_timeout_control; + mode4->short_timeout_updated = 1; + } + if (dev->data->dev_started) bond_mode_8023ad_start(dev); } @@ -1478,7 +1497,8 @@ bond_8023ad_setup_validate(uint16_t port_id, conf->aggregate_wait_timeout_ms == 0 || conf->tx_period_ms == 0 || conf->rx_marker_period_ms == 0 || - conf->update_timeout_ms == 0) { + conf->update_timeout_ms == 0 || + conf->lacp_timeout_control > 1) { RTE_BOND_LOG(ERR, "given mode 4 configuration is invalid"); return -EINVAL; } diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h index 7e9a018..87f6b2f 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.h +++ b/drivers/net/bonding/rte_eth_bond_8023ad.h @@ -139,6 +139,9 @@ struct rte_eth_bond_8023ad_conf { uint32_t update_timeout_ms; rte_eth_bond_8023ad_ext_slowrx_fn slowrx_cb; enum rte_bond_8023ad_agg_selection agg_selection; + uint8_t lacp_timeout_control; + /**< LACPDU.Actor_State.LACP_Timeout flag: 0=Long 1=Short. */ + uint8_t reserved_8s[3]; }; struct rte_eth_bond_8023ad_slave_info { From patchwork Tue Dec 21 19:57:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105316 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0B8D5A034C; Tue, 21 Dec 2021 20:58:34 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 359A041156; Tue, 21 Dec 2021 20:58:11 +0100 (CET) Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by mails.dpdk.org (Postfix) with ESMTP id D9E16410F7 for ; Tue, 21 Dec 2021 20:58:07 +0100 (CET) Received: by mail-qv1-f48.google.com with SMTP id fq10so260872qvb.10 for ; Tue, 21 Dec 2021 11:58:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ccOxziBKzockNRliVcwMvD4WLeSK21pIwyaE1sM9VFo=; b=ABmUWjv5QcM2Aog61tYj7jKfLVfHVU6HxYLWCzjjuUuAjSvl7lhe77fTzRcF/3ijH2 j5Hv6w+oupzdXcLH/neVKNOWOmQar/Dq/Msqu9MohiTXhbQfRk4TFdtDtVeY8ivDHuFr BV5G1gq+MqTyCExpFOPMYzMDVeHLn3FvDfEfVArQllMfOvdRUdzwJcY5eA+TfdgVcRhc nnxHwxpfHzVYkg4LKaeZObURJtkgPsOrT98YjBz318hTWBsLS+aWx/beZe4OyASrxnSl rFh1dYKCR/JZ/9UuGSrg9TpwPVew6R/GOfiMrSCtndiuLJ7MM1daUem8EnDbKfNbAk0C F6WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ccOxziBKzockNRliVcwMvD4WLeSK21pIwyaE1sM9VFo=; b=t0wZ5EprlI0ovM3MPUX1YhHkEJvxLQtPxGJT9h+Mgs+JMFLx2i/HVYWk9GbLF/Jmk+ R/cdrlNdq6JhAOcc92dprhdaXPXT3AmvZxqRqaS6b1/wFjbfuJQ5VahfmdAqPsDfhn2c eIwBf+c+t0Dp0Gd9AQqrEap5qqKGVurmO0VgSE78mu977Ts4EwigSliv76X9TzDgt674 TVXCPwxm093ash5dLu4apCHDMp75paEkMj2pU1LfCprdZnhc0bHmO3nI1MI54BPfb4Ob Ma9BVJvDZHfmjvpgSwZ3p7rORYnamRSWbbSQXeDjbvKi4B9Edn8jt7nqWafXuq3yn/F1 Sefw== X-Gm-Message-State: AOAM5313iAt2lkX2LNQAwz0R9TZ19+aA0gHA+Y8CzumEw5KJ6w7FRQEY y1L8keSLxyikFvw5x6sz0sEGasN+GZ1GXg== X-Google-Smtp-Source: ABdhPJzRC1kK/WnQxnBWM6ICacI3JyZUynjKlJYf7x+ABzqRLQc/z3r3X+ZXDzCuDjvROEyHxXy6yQ== X-Received: by 2002:a05:6214:5188:: with SMTP id kl8mr3851473qvb.35.1640116687300; Tue, 21 Dec 2021 11:58:07 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:07 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 5/8] net/bonding: add bond_8023ad and bond_alb to doc Date: Tue, 21 Dec 2021 14:57:27 -0500 Message-Id: <1640116650-3475-6-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Add bond_8023ad and bond_alb to API documentation. Signed-off-by: Robert Sanford --- doc/api/doxy-api-index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 4245b96..830235c 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -39,6 +39,8 @@ The public API headers are grouped by topics: - **device specific**: [softnic] (@ref rte_eth_softnic.h), [bond] (@ref rte_eth_bond.h), + [bond_8023ad] (@ref rte_eth_bond_8023ad.h), + [bond_alb] (@ref rte_eth_bond_alb.h), [vhost] (@ref rte_vhost.h), [vdpa] (@ref rte_vdpa.h), [KNI] (@ref rte_kni.h), From patchwork Tue Dec 21 19:57:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105317 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D845A034C; Tue, 21 Dec 2021 20:58:40 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9CB7A41163; Tue, 21 Dec 2021 20:58:12 +0100 (CET) Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by mails.dpdk.org (Postfix) with ESMTP id DCD8E41142 for ; Tue, 21 Dec 2021 20:58:08 +0100 (CET) Received: by mail-qt1-f179.google.com with SMTP id t11so13950100qtw.3 for ; Tue, 21 Dec 2021 11:58:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kMbvrP3A+VlX/ZPuBVjQ055anDwyowKXnp2wt6YuC4I=; b=jiKUMJpy1vP3zBgMODVVWysdhMhHWOK+C4c655jDpivNod5B5/XaeBD/J8QauE7V3t WItfpFTGx7ZO5gy9iYGy1Ecg3S2fUAdJw0K1XH86RMQzvMeStFvtInkzMo5CA7b/2Rnf hrHTtmXE0ufuOMIM+nyQli3Du87k7r0W1bAmH2EQLA0aLlSSWe+PHzcv3WgAR46/x8zg vkXjq9lxlg833eVmzhBVAW66OaTpXSyZPWwxcvRau9nHuiLa3UPKOjelbN+U5FNUa8yb 4qmtOElkFjRI+sIcE3e35IhKwYc0KsuFV0vA24eT2KGx7bFeFy5M+DEeTFSvEEFh/mcl iJBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=kMbvrP3A+VlX/ZPuBVjQ055anDwyowKXnp2wt6YuC4I=; b=QO7MUq7C5qfXF6Y/FmdrJLdTn2zgJWqEYQDQrqwjO+0E6mzxCkRyIjheIJCE94BA1v KipQ7uj1lzO378iuzvd+SqC2ztLpbKur0gdcVfYJxzs/R9qarDzt27b6XB7K93I0I/UO NRWQ3kVxFpbojs3s0MqPbqT+ZFM+cc58pt1a5dv8lThsxr6YHLXMBkObkVdMMoz6oJag BaL+Lg0iHXvBCaSUkGuLGusLdlSH9GZP07+IL+EPk4bYygNI5aVw0NZtjtdi1/AdmYj1 4HI573/iiS0z5/YJExr8guamjbRqyz/jyyfrBeG8wrjr61M8QsGVnp4m5lCrA3FrwcbQ jMEA== X-Gm-Message-State: AOAM530tX8qbK8ya4PVQGbmbw1MNk42xNU3Db7qFanqxlNYFbCyhcTUa 2+HAaCKRc+l0lg3U+Ovm0UksJwAcuHygpg== X-Google-Smtp-Source: ABdhPJzPy0CrsbHVBSXAxcs8JMpTKQtDTIVKGT6W+AC32kBsGwOVyuScwR1e5eAKBmqEBWTs+ssiMQ== X-Received: by 2002:a05:622a:58c:: with SMTP id c12mr3712478qtb.594.1640116688329; Tue, 21 Dec 2021 11:58:08 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:08 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 6/8] remove self from timers maintainers Date: Tue, 21 Dec 2021 14:57:28 -0500 Message-Id: <1640116650-3475-7-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Remove self from Timers maintainers. Signed-off-by: Robert Sanford --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 18d9eda..32663b0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1613,7 +1613,6 @@ F: examples/vm_power_manager/ F: doc/guides/sample_app_ug/vm_power_management.rst Timers -M: Robert Sanford M: Erik Gabriel Carrillo F: lib/timer/ F: doc/guides/prog_guide/timer_lib.rst From patchwork Tue Dec 21 19:57:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105318 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1122CA034C; Tue, 21 Dec 2021 20:58:45 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9E2874116D; Tue, 21 Dec 2021 20:58:13 +0100 (CET) Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by mails.dpdk.org (Postfix) with ESMTP id B1A654114F for ; Tue, 21 Dec 2021 20:58:09 +0100 (CET) Received: by mail-qv1-f51.google.com with SMTP id kd9so258764qvb.11 for ; Tue, 21 Dec 2021 11:58:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Vq3B33Ue47v+qWtEj4BajH/et3pXyvzTGoixEh1/woU=; b=fiNS60eof/VHwDexwA4LXdRxpvTLzZldUmtxmSmbgZ7ldvqVAbB8Gqr7Hy5+uphdiq AAbpIF2lPpfSMF4O0dei6rK7nVuvqZzyB/kloB1qW77dQkIdrYf6FXqO+uGpncgpSIaJ Ym64+p7MRtJ/Qfu9WACmtiB3JlZna3+U2JqfTZr/r8a7Z96ZeM7BZAOFut6KuOfYn6AE tcEMLnEccHJVWaBRWwQ5jm9aQH4cEHi3knowL2QFvUAhIBGYSSd4iC3MauG0w10s3xQk zeoZj3T4SVNj4K8f7pAfN/djTch7ChnVmFn3N52F4ERiI/yQfBJrCwztN17HyVPEgEBZ vI+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Vq3B33Ue47v+qWtEj4BajH/et3pXyvzTGoixEh1/woU=; b=Ijt0qkNZWBQuOomPHTTCtuuYpwpt8ootIulXbypmQNhxYQtShRDUUpAeCCmIVkJk4Q KwZtuZirwjMsps0H37wg5wZc86mVLQCob0jK7PnJWltUJWYFnPdZXl97HI6v8hibt7XR aAx3EsLhM9Tp38Ypc3yKMHQVsQiApNqHAQlcPtpEvVfrnArjGOsVAfrbRmwc8hRoVnRf 3oZAm8UGK6hqaPYrVBPexoTqcv/kaXvOCjkjQe0Elqt+8QigyV5s6m2FQOp9h4GG8Oju JC0itElTH2qnXYbDVt0+iSoG2QzdGbJqVTCbMogU0CtAvE+Gxl47S1eZWeMYZLUv4nTM g4wA== X-Gm-Message-State: AOAM533vwq9GgYgblnunKg2nX1FVqjEDflbWt2L31hhh1gz+8j68AGf5 iOTdiAW+vrWoyzJWU7GjIAcuMLd1ydlBWg== X-Google-Smtp-Source: ABdhPJy4I0IDuzAtdgmoK6AZM2pp82fg8L9ZADP6S+iG42sqOPozBVLm+cigfJnUPic6XmSeljjBpw== X-Received: by 2002:a05:6214:528a:: with SMTP id kj10mr4120704qvb.98.1640116689126; Tue, 21 Dec 2021 11:58:09 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:08 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 7/8] net/ring: add promisc and all-MC stubs Date: Tue, 21 Dec 2021 14:57:29 -0500 Message-Id: <1640116650-3475-8-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add promiscuous_enable, promiscuous_disable, allmulticast_enable, and allmulticast_disable API stubs. This helps clean up errors in dpdk-test link_bonding_mode4_autotest. Signed-off-by: Robert Sanford Acked-by: Bruce Richardson --- drivers/net/ring/rte_eth_ring.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index db10f03..cfb81da 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -226,6 +226,30 @@ eth_mac_addr_add(struct rte_eth_dev *dev __rte_unused, } static int +eth_promiscuous_enable(struct rte_eth_dev *dev __rte_unused) +{ + return 0; +} + +static int +eth_promiscuous_disable(struct rte_eth_dev *dev __rte_unused) +{ + return 0; +} + +static int +eth_allmulticast_enable(struct rte_eth_dev *dev __rte_unused) +{ + return 0; +} + +static int +eth_allmulticast_disable(struct rte_eth_dev *dev __rte_unused) +{ + return 0; +} + +static int eth_link_update(struct rte_eth_dev *dev __rte_unused, int wait_to_complete __rte_unused) { return 0; } @@ -275,6 +299,10 @@ static const struct eth_dev_ops ops = { .stats_reset = eth_stats_reset, .mac_addr_remove = eth_mac_addr_remove, .mac_addr_add = eth_mac_addr_add, + .promiscuous_enable = eth_promiscuous_enable, + .promiscuous_disable = eth_promiscuous_disable, + .allmulticast_enable = eth_allmulticast_enable, + .allmulticast_disable = eth_allmulticast_disable, }; static int From patchwork Tue Dec 21 19:57:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Sanford X-Patchwork-Id: 105319 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1EEC3A034C; Tue, 21 Dec 2021 20:58:49 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9CAA341174; Tue, 21 Dec 2021 20:58:14 +0100 (CET) Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by mails.dpdk.org (Postfix) with ESMTP id AFD5B41153 for ; Tue, 21 Dec 2021 20:58:10 +0100 (CET) Received: by mail-qt1-f170.google.com with SMTP id j17so13969405qtx.2 for ; Tue, 21 Dec 2021 11:58:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=phrK++lUCSHdbrwgyB89cA78usbk7bxOhNggHX6FynI=; b=djYAbTVRcFNMIcCPHAKFIuxtjXfGnC37a6Mg9F4q4rX6wFgzN/GE1PeSt/nF9pQirH NAlsOoH/DegwoLy2jRN1Y0ZnKHJ3nFsjEILA8uBva0dqh8hcHzsuasOgDI7nQhHkODgT dHCZiA6RuXhfvUCozhUVRgA+mbUBlHk+d1fX6ebwU0rsLBHARmEpVC9bsXXNrh8WwX18 VvEBNpQkLxl8ESeXlFO6aX6BIoLAuDywnkxbrED8MkY1mFuHwdiT/9iWeH41dinBPQHp 2dXg14M038Tp9NJeZtcbdNJqIGidvEkkNXBpq4tFOpVQKPUcKMYxtklpz6CMqfjIqOHH kMXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=phrK++lUCSHdbrwgyB89cA78usbk7bxOhNggHX6FynI=; b=Vb+j+hSrOWu1U9ghQf4DctnaHEkA2JGIYddaQX6GEK2pcHrxoRCmG7boCQA/s+OMoU JDBXDQWMBnFiIQi1uuk59kUKN5S0l9rHsuLe5b42vyPsO409AdyA8YoNL8JUoRgmgKib 8fXtT68SSpjGcfDtfnrHtnbELWIFfF/Z93X8bLO6vHiTcJTh3FbVIUGt/OQyNPiuCx0j 0+ut1mbVWYGMV0lrLCmWcqNNdQV3oaClhaTCm8h2kAH7gwZlXz/jC39R5Zf5vK9kWfpT dtFX7g5M5nrVQJntI7I3VfaiPNkLTt/6iKIOJJemr621BCJWnnx05KEPgfOmcUR1zjOe nUcA== X-Gm-Message-State: AOAM533IXdhXweoXr/pM3hJfh1orjwe1FMHISuEDOOWtRYAkDQlrm7vQ 72XRZZcHFoOgm9nplh0TF46cjWerFFLmxA== X-Google-Smtp-Source: ABdhPJx60GvGvHgVEcaXME/S/yQZokkgyh53z63k38Lr+KgLeTsfmCu73IgskBedIuKpwLWPngMM8Q== X-Received: by 2002:ac8:59c7:: with SMTP id f7mr3659923qtf.605.1640116690022; Tue, 21 Dec 2021 11:58:10 -0800 (PST) Received: from ubuntu.localdomain (99-153-167-175.lightspeed.ftldfl.sbcglobal.net. [99.153.167.175]) by smtp.gmail.com with ESMTPSA id h3sm14684401qko.78.2021.12.21.11.58.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 11:58:09 -0800 (PST) From: Robert Sanford X-Google-Original-From: Robert Sanford To: dev@dpdk.org Cc: chas3@att.com, humin29@huawei.com, bruce.richardson@intel.com Subject: [PATCH v2 8/8] net/bonding: add LACP short timeout tests Date: Tue, 21 Dec 2021 14:57:30 -0500 Message-Id: <1640116650-3475-9-git-send-email-rsanford@akamai.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1640116650-3475-1-git-send-email-rsanford@akamai.com> References: <1639592401-56845-2-git-send-email-rsanford@akamai.com> <1640116650-3475-1-git-send-email-rsanford@akamai.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Add "set bonding lacp timeout_ctrl on|off" to testpmd. - Add "test_mode4_lacp_timeout_control" to dpdk-test. - Remove call to rte_eth_dev_mac_addr_remove from add_slave, as it always fails and prints an error. Signed-off-by: Robert Sanford --- app/test-pmd/cmdline.c | 77 ++++++++++++++++++++++++++++++++++++++ app/test/test_link_bonding_mode4.c | 70 +++++++++++++++++++++++++++++++++- 2 files changed, 145 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 9fd2c2a..b0c2fb4 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -633,6 +633,9 @@ static void cmd_help_long_parsed(void *parsed_result, "set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n" " Set Aggregation mode for IEEE802.3AD (mode 4)\n\n" + "set bonding lacp timeout_ctrl (port_id) (on|off)\n" + "Configure LACP partner to use fast|slow periodic tx interval.\n\n" + "set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n" " Set the transmit balance policy for bonded device running in balance mode.\n\n" @@ -6192,6 +6195,7 @@ static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf) printf("\taggregation mode: invalid\n"); break; } + printf("\tlacp timeout control: %u\n", conf->lacp_timeout_control); printf("\n"); } @@ -6863,6 +6867,78 @@ cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = { }; +/* *** SET LACP TIMEOUT CONTROL ON BONDED DEVICE *** */ +struct cmd_set_lacp_timeout_control_result { + cmdline_fixed_string_t set; + cmdline_fixed_string_t bonding; + cmdline_fixed_string_t lacp; + cmdline_fixed_string_t timeout_ctrl; + uint16_t port_id; + cmdline_fixed_string_t on_off; +}; + +static void +cmd_set_lacp_timeout_control_parsed(void *parsed_result, + __rte_unused struct cmdline *cl, + __rte_unused void *data) +{ + struct cmd_set_lacp_timeout_control_result *res = parsed_result; + struct rte_eth_bond_8023ad_conf port_conf; + uint8_t on_off = 0; + int ret; + + if (!strcmp(res->on_off, "on")) + on_off = 1; + + ret = rte_eth_bond_8023ad_conf_get(res->port_id, &port_conf); + if (ret != 0) { + fprintf(stderr, "\tGet bonded device %u lacp conf failed\n", + res->port_id); + return; + } + + port_conf.lacp_timeout_control = on_off; + ret = rte_eth_bond_8023ad_setup(res->port_id, &port_conf); + if (ret != 0) + fprintf(stderr, "\tSetup bonded device %u lacp conf failed\n", + res->port_id); +} + +cmdline_parse_token_string_t cmd_set_lacp_timeout_control_set = + TOKEN_STRING_INITIALIZER(struct cmd_set_lacp_timeout_control_result, + set, "set"); +cmdline_parse_token_string_t cmd_set_lacp_timeout_control_bonding = + TOKEN_STRING_INITIALIZER(struct cmd_set_lacp_timeout_control_result, + bonding, "bonding"); +cmdline_parse_token_string_t cmd_set_lacp_timeout_control_lacp = + TOKEN_STRING_INITIALIZER(struct cmd_set_lacp_timeout_control_result, + lacp, "lacp"); +cmdline_parse_token_string_t cmd_set_lacp_timeout_control_timeout_ctrl = + TOKEN_STRING_INITIALIZER(struct cmd_set_lacp_timeout_control_result, + timeout_ctrl, "timeout_ctrl"); +cmdline_parse_token_num_t cmd_set_lacp_timeout_control_port_id = + TOKEN_NUM_INITIALIZER(struct cmd_set_lacp_timeout_control_result, + port_id, RTE_UINT16); +cmdline_parse_token_string_t cmd_set_lacp_timeout_control_on_off = + TOKEN_STRING_INITIALIZER(struct cmd_set_lacp_timeout_control_result, + on_off, "on#off"); + +cmdline_parse_inst_t cmd_set_lacp_timeout_control = { + .f = cmd_set_lacp_timeout_control_parsed, + .data = (void *) 0, + .help_str = "set bonding lacp timeout_ctrl on|off: " + "Configure partner to use fast|slow periodic tx interval", + .tokens = { + (void *)&cmd_set_lacp_timeout_control_set, + (void *)&cmd_set_lacp_timeout_control_bonding, + (void *)&cmd_set_lacp_timeout_control_lacp, + (void *)&cmd_set_lacp_timeout_control_timeout_ctrl, + (void *)&cmd_set_lacp_timeout_control_port_id, + (void *)&cmd_set_lacp_timeout_control_on_off, + NULL + } +}; + #endif /* RTE_NET_BOND */ /* *** SET FORWARDING MODE *** */ @@ -17728,6 +17804,7 @@ cmdline_parse_ctx_t main_ctx[] = { (cmdline_parse_inst_t *) &cmd_set_bond_mon_period, (cmdline_parse_inst_t *) &cmd_set_lacp_dedicated_queues, (cmdline_parse_inst_t *) &cmd_set_bonding_agg_mode_policy, + (cmdline_parse_inst_t *) &cmd_set_lacp_timeout_control, #endif (cmdline_parse_inst_t *)&cmd_vlan_offload, (cmdline_parse_inst_t *)&cmd_vlan_tpid, diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c index 2be86d5..bc73183 100644 --- a/app/test/test_link_bonding_mode4.c +++ b/app/test/test_link_bonding_mode4.c @@ -235,8 +235,6 @@ add_slave(struct slave_conf *slave, uint8_t start) rte_ether_addr_copy(&slave_mac_default, &addr); addr.addr_bytes[RTE_ETHER_ADDR_LEN - 1] = slave->port_id; - rte_eth_dev_mac_addr_remove(slave->port_id, &addr); - TEST_ASSERT_SUCCESS(rte_eth_dev_mac_addr_add(slave->port_id, &addr, 0), "Failed to set slave MAC address"); @@ -735,6 +733,66 @@ test_mode4_agg_mode_selection(void) } static int +test_mode4_lacp_timeout_control(void) +{ + int retval; + int iterations; + size_t i; + struct slave_conf *slave; + uint16_t port_id = test_params.bonded_port_id; + struct rte_eth_bond_8023ad_conf conf; + struct rte_eth_bond_8023ad_slave_info info; + uint8_t on_off = 0; + uint8_t lacp_timeout_flag = 0; + + retval = initialize_bonded_device_with_slaves(TEST_LACP_SLAVE_COUT, 0); + TEST_ASSERT_SUCCESS(retval, "Failed to initialize bonded device"); + + /* Iteration 0: Verify that LACP timeout control is off by default. + * Iteration 1: Verify that we can set LACP timeout control. + * Iteration 2: Verify that we can reset LACP timeout control. + */ + for (iterations = 0; iterations < 3; iterations++) { + /* Verify that bond conf has expected timeout control value.*/ + retval = rte_eth_bond_8023ad_conf_get(port_id, &conf); + TEST_ASSERT_SUCCESS(retval, "Failed to get LACP conf"); + TEST_ASSERT_EQUAL(conf.lacp_timeout_control, on_off, + "Wrong LACP timeout control value"); + + /* State machine must run to propagate new timeout control + * value to slaves (iterations 1 and 2). + */ + retval = bond_handshake(); + TEST_ASSERT_SUCCESS(retval, "Bond handshake failed"); + retval = bond_handshake(); + TEST_ASSERT_SUCCESS(retval, "Bond handshake failed"); + + /* Verify that slaves' actor states have expected value.*/ + FOR_EACH_PORT(i, slave) { + retval = rte_eth_bond_8023ad_slave_info(port_id, + slave->port_id, &info); + TEST_ASSERT_SUCCESS(retval, + "Failed to get LACP slave info"); + TEST_ASSERT_EQUAL((info.actor_state & + STATE_LACP_SHORT_TIMEOUT), lacp_timeout_flag, + " Wrong LACP slave info timeout flag"); + } + + /* Toggle timeout control. */ + on_off ^= 1; + lacp_timeout_flag ^= STATE_LACP_SHORT_TIMEOUT; + conf.lacp_timeout_control = on_off; + retval = rte_eth_bond_8023ad_setup(port_id, &conf); + TEST_ASSERT_SUCCESS(retval, "Failed to setup LACP conf"); + } + + retval = remove_slaves_and_stop_bonded_device(); + TEST_ASSERT_SUCCESS(retval, "Test cleanup failed."); + + return TEST_SUCCESS; +} + +static int generate_packets(struct rte_ether_addr *src_mac, struct rte_ether_addr *dst_mac, uint16_t count, struct rte_mbuf **buf) { @@ -1649,6 +1707,12 @@ test_mode4_ext_lacp_wrapper(void) return test_mode4_executor(&test_mode4_ext_lacp); } +static int +test_mode4_lacp_timeout_control_wrapper(void) +{ + return test_mode4_executor(&test_mode4_lacp_timeout_control); +} + static struct unit_test_suite link_bonding_mode4_test_suite = { .suite_name = "Link Bonding mode 4 Unit Test Suite", .setup = test_setup, @@ -1665,6 +1729,8 @@ static struct unit_test_suite link_bonding_mode4_test_suite = { test_mode4_ext_ctrl_wrapper), TEST_CASE_NAMED("test_mode4_ext_lacp", test_mode4_ext_lacp_wrapper), + TEST_CASE_NAMED("test_mode4_lacp_timeout_control", + test_mode4_lacp_timeout_control_wrapper), TEST_CASES_END() /**< NULL terminate unit test array */ }