From patchwork Mon Dec 10 18:28:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hyong Youb Kim (hyonkim)" X-Patchwork-Id: 48621 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 70BCD1B394; Mon, 10 Dec 2018 19:29:23 +0100 (CET) Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) by dpdk.org (Postfix) with ESMTP id E22881B293 for ; Mon, 10 Dec 2018 19:29:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1576; q=dns/txt; s=iport; t=1544466561; x=1545676161; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=hmjfDIdMybLUsuDl/7u6da788RHPcybMwaA/K6YuGN8=; b=joUVidO6+PFLHt8COdYKP+Cfe+4zNyd3stmDUepOLtkpKFv5fwwGT/oN ca1mnUZmJgOpaSRAP4NsJyfof9Kylg+jJhnod3rrycsA/nhlLdy52pu6Q Ooykk/PyZvI6tNhhoooMlOJzeUrWzmKjWBHbzqljJP/q72LGsiN6FjBHo A=; X-IronPort-AV: E=Sophos;i="5.56,339,1539648000"; d="scan'208";a="497052810" Received: from alln-core-11.cisco.com ([173.36.13.133]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Dec 2018 18:29:20 +0000 Received: from cisco.com (savbu-usnic-a.cisco.com [10.193.184.48]) by alln-core-11.cisco.com (8.15.2/8.15.2) with ESMTP id wBAITKnJ032211; Mon, 10 Dec 2018 18:29:20 GMT Received: by cisco.com (Postfix, from userid 508933) id 657EB20F2001; Mon, 10 Dec 2018 10:29:20 -0800 (PST) From: Hyong Youb Kim To: Ferruh Yigit Cc: dev@dpdk.org, John Daley , Hyong Youb Kim Date: Mon, 10 Dec 2018 10:28:53 -0800 Message-Id: <20181210182857.13043-2-hyonkim@cisco.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20181210182857.13043-1-hyonkim@cisco.com> References: <20181210182857.13043-1-hyonkim@cisco.com> X-Outbound-SMTP-Client: 10.193.184.48, savbu-usnic-a.cisco.com X-Outbound-Node: alln-core-11.cisco.com Subject: [dpdk-dev] [PATCH 1/4] net/enic: release port upon close X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so rte_eth_dev_close() can later free port resources including mac_addrs. Signed-off-by: Hyong Youb Kim Reviewed-by: John Daley --- drivers/net/enic/enic_ethdev.c | 2 ++ drivers/net/enic/enic_main.c | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index 996bb5542..ed8dda568 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -1048,6 +1048,8 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev) eth_dev->rx_pkt_burst = &enic_recv_pkts; eth_dev->tx_pkt_burst = &enic_xmit_pkts; eth_dev->tx_pkt_prepare = &enic_prep_pkts; + /* Let rte_eth_dev_close() release the port resources */ + eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE; pdev = RTE_ETH_DEV_TO_PCI(eth_dev); rte_eth_copy_pci_info(eth_dev, pdev); diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index c3869de36..f45717374 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -1379,12 +1379,10 @@ int enic_get_link_status(struct enic *enic) static void enic_dev_deinit(struct enic *enic) { - struct rte_eth_dev *eth_dev = enic->rte_dev; - /* stop link status checking */ vnic_dev_notify_unset(enic->vdev); - rte_free(eth_dev->data->mac_addrs); + /* mac_addrs is freed by rte_eth_dev_release_port() */ rte_free(enic->cq); rte_free(enic->intr); rte_free(enic->rq); From patchwork Mon Dec 10 18:28:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hyong Youb Kim (hyonkim)" X-Patchwork-Id: 48622 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5C29E1B39F; Mon, 10 Dec 2018 19:29:32 +0100 (CET) Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) by dpdk.org (Postfix) with ESMTP id 91C4D1B39E for ; Mon, 10 Dec 2018 19:29:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3325; q=dns/txt; s=iport; t=1544466570; x=1545676170; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=rASS8Rg/k/MLjEE8g42V0QtbPbNm3Y4YrU0UuoMlhFQ=; b=B+X4wX6TYuOV8R6mXotNtsqbteX3kEWqKRi/aliV1qVIRApbGE2RjMIM kaulep4fpiF7Z5fr7MZ5tGFwbbZ15N3BzrvgaySYhPutdOhGeMjB60hnH 8cN8vD8/maXW6tBPMkqxajvNp/b7EE5gq39xoWryL3QgJf0nwUAslBdgY E=; X-IronPort-AV: E=Sophos;i="5.56,339,1539648000"; d="scan'208";a="211058453" Received: from rcdn-core-3.cisco.com ([173.37.93.154]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Dec 2018 18:29:28 +0000 Received: from cisco.com (savbu-usnic-a.cisco.com [10.193.184.48]) by rcdn-core-3.cisco.com (8.15.2/8.15.2) with ESMTP id wBAITS1g022186; Mon, 10 Dec 2018 18:29:28 GMT Received: by cisco.com (Postfix, from userid 508933) id 463F920F2001; Mon, 10 Dec 2018 10:29:28 -0800 (PST) From: Hyong Youb Kim To: Ferruh Yigit Cc: dev@dpdk.org, John Daley , Hyong Youb Kim Date: Mon, 10 Dec 2018 10:28:54 -0800 Message-Id: <20181210182857.13043-3-hyonkim@cisco.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20181210182857.13043-1-hyonkim@cisco.com> References: <20181210182857.13043-1-hyonkim@cisco.com> X-Outbound-SMTP-Client: 10.193.184.48, savbu-usnic-a.cisco.com X-Outbound-Node: rcdn-core-3.cisco.com Subject: [dpdk-dev] [PATCH 2/4] net/enic: add handler to return firmware version string X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Cisco VIC adapters run firmware. Add the fw_version_get handler to help diagnostics. Signed-off-by: Hyong Youb Kim Reviewed-by: John Daley --- doc/guides/nics/features/enic.ini | 1 + drivers/net/enic/base/vnic_dev.c | 26 ++++++++++++++++++++++++++ drivers/net/enic/enic_ethdev.c | 21 +++++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini index 8a4bad29f..020b75cf0 100644 --- a/doc/guides/nics/features/enic.ini +++ b/doc/guides/nics/features/enic.ini @@ -31,6 +31,7 @@ Inner L3 checksum = Y Inner L4 checksum = Y Packet type parsing = Y Basic stats = Y +FW version = Y Multiprocess aware = Y BSD nic_uio = Y Linux UIO = Y diff --git a/drivers/net/enic/base/vnic_dev.c b/drivers/net/enic/base/vnic_dev.c index fd303fece..1e5b12a80 100644 --- a/drivers/net/enic/base/vnic_dev.c +++ b/drivers/net/enic/base/vnic_dev.c @@ -458,6 +458,32 @@ int vnic_dev_cmd_args(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd, } } +int vnic_dev_fw_info(struct vnic_dev *vdev, + struct vnic_devcmd_fw_info **fw_info) +{ + char name[NAME_MAX]; + u64 a0, a1 = 0; + int wait = 1000; + int err = 0; + static u32 instance; + + if (!vdev->fw_info) { + snprintf((char *)name, sizeof(name), "vnic_fw_info-%u", + instance++); + vdev->fw_info = vdev->alloc_consistent(vdev->priv, + sizeof(struct vnic_devcmd_fw_info), + &vdev->fw_info_pa, (u8 *)name); + if (!vdev->fw_info) + return -ENOMEM; + a0 = vdev->fw_info_pa; + a1 = sizeof(struct vnic_devcmd_fw_info); + err = vnic_dev_cmd(vdev, CMD_MCPU_FW_INFO, + &a0, &a1, wait); + } + *fw_info = vdev->fw_info; + return err; +} + static int vnic_dev_advanced_filters_cap(struct vnic_dev *vdev, u64 *args, int nargs) { diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index ed8dda568..9b206e8f0 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -887,6 +887,26 @@ static int enicpmd_dev_udp_tunnel_port_del(struct rte_eth_dev *eth_dev, return update_vxlan_port(enic, ENIC_DEFAULT_VXLAN_PORT); } +static int enicpmd_dev_fw_version_get(struct rte_eth_dev *eth_dev, + char *fw_version, size_t fw_size) +{ + struct vnic_devcmd_fw_info *info; + struct enic *enic; + int ret; + + ENICPMD_FUNC_TRACE(); + if (fw_version == NULL || fw_size <= 0) + return -EINVAL; + enic = pmd_priv(eth_dev); + ret = vnic_dev_fw_info(enic->vdev, &info); + if (ret) + return ret; + snprintf(fw_version, fw_size, "%s %s", + info->fw_version, info->fw_build); + fw_version[fw_size - 1] = '\0'; + return 0; +} + static const struct eth_dev_ops enicpmd_eth_dev_ops = { .dev_configure = enicpmd_dev_configure, .dev_start = enicpmd_dev_start, @@ -938,6 +958,7 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = { .rss_hash_update = enicpmd_dev_rss_hash_update, .udp_tunnel_port_add = enicpmd_dev_udp_tunnel_port_add, .udp_tunnel_port_del = enicpmd_dev_udp_tunnel_port_del, + .fw_version_get = enicpmd_dev_fw_version_get, }; static int enic_parse_zero_one(const char *key, From patchwork Mon Dec 10 18:28:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hyong Youb Kim (hyonkim)" X-Patchwork-Id: 48623 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 024C31B3A5; Mon, 10 Dec 2018 19:29:36 +0100 (CET) Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) by dpdk.org (Postfix) with ESMTP id 7DF921B39D for ; Mon, 10 Dec 2018 19:29:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7029; q=dns/txt; s=iport; t=1544466573; x=1545676173; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=W5MalPZfLLjhTPuaPu3x1jojq0gxUD1jBiu68IRlStc=; b=mX/jP1hgqcCIQRIG+pHUfJgkFH+WEofj/QljKe/YAZUEVguBqpwmCoFo d1sDtgaeotUEZR2bOJiPGDT8fQy2Syh4mUBq2n/hdRm/WUJeH+4VGJC8H ewd8JN4eP82k8kvvZGhiDC5XtaA2IagVRBO/Ff3xguEawhfbW61eCyeXz M=; X-IronPort-AV: E=Sophos;i="5.56,339,1539648000"; d="scan'208";a="211058491" Received: from alln-core-1.cisco.com ([173.36.13.131]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Dec 2018 18:29:33 +0000 Received: from cisco.com (savbu-usnic-a.cisco.com [10.193.184.48]) by alln-core-1.cisco.com (8.15.2/8.15.2) with ESMTP id wBAITW43024048; Mon, 10 Dec 2018 18:29:33 GMT Received: by cisco.com (Postfix, from userid 508933) id B989620F2001; Mon, 10 Dec 2018 10:29:32 -0800 (PST) From: Hyong Youb Kim To: Ferruh Yigit Cc: dev@dpdk.org, John Daley , Hyong Youb Kim Date: Mon, 10 Dec 2018 10:28:55 -0800 Message-Id: <20181210182857.13043-4-hyonkim@cisco.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20181210182857.13043-1-hyonkim@cisco.com> References: <20181210182857.13043-1-hyonkim@cisco.com> X-Outbound-SMTP-Client: 10.193.184.48, savbu-usnic-a.cisco.com X-Outbound-Node: alln-core-1.cisco.com Subject: [dpdk-dev] [PATCH 3/4] net/enic: support multicast filtering X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The VIC hardware has 64 MAC filters per vNIC, which can be either unicast or multicast. Use one half for unicast and the other half for multicast, as the VIC kernel drivers for Linux and Windows do. Signed-off-by: Hyong Youb Kim Reviewed-by: John Daley --- doc/guides/nics/features/enic.ini | 2 +- drivers/net/enic/enic.h | 6 ++- drivers/net/enic/enic_ethdev.c | 96 ++++++++++++++++++++++++++++++++++++++- drivers/net/enic/enic_main.c | 5 +- 4 files changed, 103 insertions(+), 6 deletions(-) diff --git a/doc/guides/nics/features/enic.ini b/doc/guides/nics/features/enic.ini index 020b75cf0..c6d374984 100644 --- a/doc/guides/nics/features/enic.ini +++ b/doc/guides/nics/features/enic.ini @@ -15,7 +15,7 @@ TSO = Y Promiscuous mode = Y Allmulticast mode = Y Unicast MAC filter = Y -Multicast MAC filter = +Multicast MAC filter = Y RSS hash = Y RSS key update = Y RSS reta update = Y diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h index 7bca3cad2..6c497e9a2 100644 --- a/drivers/net/enic/enic.h +++ b/drivers/net/enic/enic.h @@ -25,8 +25,6 @@ #define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Poll-mode Driver" #define DRV_COPYRIGHT "Copyright 2008-2015 Cisco Systems, Inc" -#define ENIC_MAX_MAC_ADDR 64 - #define VLAN_ETH_HLEN 18 #define ENICPMD_SETTING(enic, f) ((enic->config.flags & VENETF_##f) ? 1 : 0) @@ -196,6 +194,10 @@ struct enic { uint64_t tx_offload_capa; /* DEV_TX_OFFLOAD flags */ uint64_t tx_queue_offload_capa; /* DEV_TX_OFFLOAD flags */ uint64_t tx_offload_mask; /* PKT_TX flags accepted */ + + /* Multicast MAC addresses added to the NIC */ + uint32_t mc_count; + struct ether_addr mc_addrs[ENIC_MULTICAST_PERFECT_FILTERS]; }; /* Compute ethdev's max packet size from MTU */ diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index 9b206e8f0..fbbec2266 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -367,6 +367,7 @@ static int enicpmd_dev_configure(struct rte_eth_dev *eth_dev) return ret; } + enic->mc_count = 0; enic->hw_ip_checksum = !!(eth_dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_CHECKSUM); /* All vlan offload masks to apply the current settings */ @@ -473,7 +474,7 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev, * ignoring vNIC mtu. */ device_info->max_rx_pktlen = enic_mtu_to_max_rx_pktlen(enic->max_mtu); - device_info->max_mac_addrs = ENIC_MAX_MAC_ADDR; + device_info->max_mac_addrs = ENIC_UNICAST_PERFECT_FILTERS; device_info->rx_offload_capa = enic->rx_offload_capa; device_info->tx_offload_capa = enic->tx_offload_capa; device_info->tx_queue_offload_capa = enic->tx_queue_offload_capa; @@ -643,6 +644,98 @@ static int enicpmd_set_mac_addr(struct rte_eth_dev *eth_dev, return enic_set_mac_address(enic, addr->addr_bytes); } +static void debug_log_add_del_addr(struct ether_addr *addr, bool add) +{ + char mac_str[ETHER_ADDR_FMT_SIZE]; + if (rte_log_get_level(enicpmd_logtype_init) == RTE_LOG_DEBUG) { + ether_format_addr(mac_str, ETHER_ADDR_FMT_SIZE, addr); + PMD_INIT_LOG(ERR, " %s address %s\n", + add ? "add" : "remove", mac_str); + } +} + +static int enicpmd_set_mc_addr_list(struct rte_eth_dev *eth_dev, + struct ether_addr *mc_addr_set, + uint32_t nb_mc_addr) +{ + struct enic *enic = pmd_priv(eth_dev); + char mac_str[ETHER_ADDR_FMT_SIZE]; + struct ether_addr *addr; + uint32_t i, j; + int ret; + + ENICPMD_FUNC_TRACE(); + + /* Validate the given addresses first */ + for (i = 0; i < nb_mc_addr && mc_addr_set != NULL; i++) { + addr = &mc_addr_set[i]; + if (!is_multicast_ether_addr(addr) || + is_broadcast_ether_addr(addr)) { + ether_format_addr(mac_str, ETHER_ADDR_FMT_SIZE, addr); + PMD_INIT_LOG(ERR, " invalid multicast address %s\n", + mac_str); + return -EINVAL; + } + } + + /* Flush all if requested */ + if (nb_mc_addr == 0 || mc_addr_set == NULL) { + PMD_INIT_LOG(DEBUG, " flush multicast addresses\n"); + for (i = 0; i < enic->mc_count; i++) { + addr = &enic->mc_addrs[i]; + debug_log_add_del_addr(addr, false); + ret = vnic_dev_del_addr(enic->vdev, addr->addr_bytes); + if (ret) + return ret; + } + enic->mc_count = 0; + return 0; + } + + if (nb_mc_addr > ENIC_MULTICAST_PERFECT_FILTERS) { + PMD_INIT_LOG(ERR, " too many multicast addresses: max=%d\n", + ENIC_MULTICAST_PERFECT_FILTERS); + return -ENOSPC; + } + /* + * devcmd is slow, so apply the difference instead of flushing and + * adding everything. + * 1. Delete addresses on the NIC but not on the host + */ + for (i = 0; i < enic->mc_count; i++) { + addr = &enic->mc_addrs[i]; + for (j = 0; j < nb_mc_addr; j++) { + if (is_same_ether_addr(addr, &mc_addr_set[j])) + break; + } + if (j < nb_mc_addr) + continue; + debug_log_add_del_addr(addr, false); + ret = vnic_dev_del_addr(enic->vdev, addr->addr_bytes); + if (ret) + return ret; + } + /* 2. Add addresses on the host but not on the NIC */ + for (i = 0; i < nb_mc_addr; i++) { + addr = &mc_addr_set[i]; + for (j = 0; j < enic->mc_count; j++) { + if (is_same_ether_addr(addr, &enic->mc_addrs[j])) + break; + } + if (j < enic->mc_count) + continue; + debug_log_add_del_addr(addr, true); + ret = vnic_dev_add_addr(enic->vdev, addr->addr_bytes); + if (ret) + return ret; + } + /* Keep a copy so we can flush/apply later on.. */ + memcpy(enic->mc_addrs, mc_addr_set, + nb_mc_addr * sizeof(struct ether_addr)); + enic->mc_count = nb_mc_addr; + return 0; +} + static int enicpmd_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu) { struct enic *enic = pmd_priv(eth_dev); @@ -951,6 +1044,7 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = { .mac_addr_add = enicpmd_add_mac_addr, .mac_addr_remove = enicpmd_remove_mac_addr, .mac_addr_set = enicpmd_set_mac_addr, + .set_mc_addr_list = enicpmd_set_mc_addr_list, .filter_ctrl = enicpmd_dev_filter_ctrl, .reta_query = enicpmd_dev_rss_reta_query, .reta_update = enicpmd_dev_rss_reta_update, diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index f45717374..621a984a0 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -1667,8 +1667,9 @@ static int enic_dev_init(struct enic *enic) /* Get the supported filters */ enic_fdir_info(enic); - eth_dev->data->mac_addrs = rte_zmalloc("enic_mac_addr", ETH_ALEN - * ENIC_MAX_MAC_ADDR, 0); + eth_dev->data->mac_addrs = rte_zmalloc("enic_mac_addr", + sizeof(struct ether_addr) * + ENIC_UNICAST_PERFECT_FILTERS, 0); if (!eth_dev->data->mac_addrs) { dev_err(enic, "mac addr storage alloc failed, aborting.\n"); return -1; From patchwork Mon Dec 10 18:28:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hyong Youb Kim (hyonkim)" X-Patchwork-Id: 48624 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B744F1B39D; Mon, 10 Dec 2018 19:29:41 +0100 (CET) Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) by dpdk.org (Postfix) with ESMTP id 16D6A1B39D for ; Mon, 10 Dec 2018 19:29:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=818; q=dns/txt; s=iport; t=1544466580; x=1545676180; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=tZhGT6yFaSiau46lL/BY0lQK5wO5TeNNio6OECoUGNY=; b=IAQ+gA82AtYWkPtlXlx88/OBayG2+DFl+sXiMntkWiWc0uph5eLpQnwm OofNsdgU7LAB2YYBtS0rrqLaFsmuQShTqW7qDtxy6EeVyLHWfXABTZ3pK suyKwhSDkOVsvDfji5VrRsMMItbS8RK0QQ9DTKniUrCvf1/X8eVs2jcpK c=; X-IronPort-AV: E=Sophos;i="5.56,339,1539648000"; d="scan'208";a="493934936" Received: from rcdn-core-10.cisco.com ([173.37.93.146]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Dec 2018 18:29:39 +0000 Received: from cisco.com (savbu-usnic-a.cisco.com [10.193.184.48]) by rcdn-core-10.cisco.com (8.15.2/8.15.2) with ESMTP id wBAITcBg001440; Mon, 10 Dec 2018 18:29:39 GMT Received: by cisco.com (Postfix, from userid 508933) id D88E620F2001; Mon, 10 Dec 2018 10:29:38 -0800 (PST) From: Hyong Youb Kim To: Ferruh Yigit Cc: dev@dpdk.org, John Daley , Hyong Youb Kim Date: Mon, 10 Dec 2018 10:28:56 -0800 Message-Id: <20181210182857.13043-5-hyonkim@cisco.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20181210182857.13043-1-hyonkim@cisco.com> References: <20181210182857.13043-1-hyonkim@cisco.com> X-Outbound-SMTP-Client: 10.193.184.48, savbu-usnic-a.cisco.com X-Outbound-Node: rcdn-core-10.cisco.com Subject: [dpdk-dev] [PATCH 4/4] doc: update release notes for enic X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Hyong Youb Kim Reviewed-by: John Daley --- doc/guides/rel_notes/release_19_02.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guides/rel_notes/release_19_02.rst b/doc/guides/rel_notes/release_19_02.rst index a94fa86a7..4c789d2a9 100644 --- a/doc/guides/rel_notes/release_19_02.rst +++ b/doc/guides/rel_notes/release_19_02.rst @@ -54,6 +54,11 @@ New Features Also, make sure to start the actual text at the margin. ========================================================= +* **Updated the enic driver.** + + * Added support for ``RTE_ETH_DEV_CLOSE_REMOVE`` flag. + * Added the handler to get firmware version string. + * Added support for multicast filtering. Removed Items -------------