From: Tetsuya Mukawa <mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
To: "Qiu,
Michael" <michael.qiu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"dev-VfR2kkLFssw@public.gmane.org"
<dev-VfR2kkLFssw@public.gmane.org>
Subject: Re: FW: [PATCH v4 01/11] eal/pci, ethdev: Remove assumption that port will not be detached
Date: Tue, 20 Jan 2015 11:02:24 +0900 [thread overview]
Message-ID: <54BDB730.3030209@igel.co.jp> (raw)
In-Reply-To: <533710CFB86FA344BFBF2D6802E60286CB76AF-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
Hi Michael,
On 2015/01/19 23:24, Qiu, Michael wrote:
> Hi, Tetsuya
>
> You see lots of places have below three lines:
>
> if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
> return -EINVAL;
> }
>
> They are all the same(only few has the print log different), so can we improve it?
>
> See below:
>
> +static int
> +rte_eth_dev_validate_port(uint8_t port_id, bool trace) {
> + if (port_id >= RTE_MAX_ETHPORTS ||
> + rte_eth_devices[port_id].attached != DEV_CONNECTED) {
> + if (trace)
> + PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
> + return DEV_INVALID;
> + }
> + else
> + return DEV_VALID;
> +}
>
> For normal case we just call this function use
> rte_eth_dev_validate_port(port_id, 1)
> here 1 could be a enmu value(Thus trace should be defined as int).
> After call, we didn't need to add PMD_DEBUG_TRACE() any more.
>
> For few cases like:
> PMD_DEBUG_TRACE("set VF rate limit:invalid port id=%d\n",
> port_id);
>
> We can call the function with secondary param set to "0", and add the trace log after the function called, just as before.
>
> I think after this enhancement, the code seems more clean and efficiency。
I appreciate your comment.
Sounds nice. I changes like above.
Thanks,
Tetsuya
>
> Thanks,
> Michael
>
>>> -----Original Message-----
>>> From: dev [mailto:dev-bounces-VfR2kkLFssw@public.gmane.org] On Behalf Of Tetsuya Mukawa
>>> Sent: Monday, January 19, 2015 10:40 AM
>>> To: dev-VfR2kkLFssw@public.gmane.org
>>> Subject: [dpdk-dev] [PATCH v4 01/11] eal/pci, ethdev: Remove assumption that port will not be
>>> detached
>>>
>>> To remove assumption, do like followings.
>>>
>>> This patch adds "RTE_PCI_DRV_DETACHABLE" to drv_flags of rte_pci_driver structure. The flags
>>> indicates the driver can detach devices at runtime.
>>> Also remove assumption that port will not be detached.
>>>
>>> To remove the assumption.
>>> - Add 'attached' member to rte_eth_dev structure.
>>> This member is used for indicating the port is attached, or not.
>>> - Add rte_eth_dev_allocate_new_port().
>>> This function is used for allocating new port.
>>>
>>> v4:
>>> - Use braces with 'for' loop.
>>> - Fix indent of 'if' statement.
>>>
>>> Signed-off-by: Tetsuya Mukawa <mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
>>> ---
>>> lib/librte_eal/common/include/rte_pci.h | 2 +
>>> lib/librte_ether/rte_ethdev.c | 248 ++++++++++++++++++--------------
>>> lib/librte_ether/rte_ethdev.h | 5 +
>>> 3 files changed, 151 insertions(+), 104 deletions(-)
>>>
>>> diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h
>>> index 66ed793..dd1da28 100644
>>> --- a/lib/librte_eal/common/include/rte_pci.h
>>> +++ b/lib/librte_eal/common/include/rte_pci.h
>>> @@ -199,6 +199,8 @@ struct rte_pci_driver { #define RTE_PCI_DRV_FORCE_UNBIND 0x0004
>>> /** Device driver supports link state interrupt */
>>> #define RTE_PCI_DRV_INTR_LSC 0x0008
>>> +/** Device driver supports detaching capability */
>>> +#define RTE_PCI_DRV_DETACHABLE 0x0010
>>>
>>> /**< Internal use only - Macro used by pci addr parsing functions **/
>>> #define GET_PCIADDR_FIELD(in, fd, lim, dlm) \
>>> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 077d430..46cabaf
>>> 100644
>>> --- a/lib/librte_ether/rte_ethdev.c
>>> +++ b/lib/librte_ether/rte_ethdev.c
>>> @@ -175,6 +175,16 @@ enum {
>>> STAT_QMAP_RX
>>> };
>>>
>>> +enum {
>>> + DEV_INVALID = 0,
>>> + DEV_VALID,
>>> +};
>>> +
>>> +enum {
>>> + DEV_DISCONNECTED = 0,
>>> + DEV_CONNECTED
>>> +};
>>> +
>>> static inline void
>>> rte_eth_dev_data_alloc(void)
>>> {
>>> @@ -201,19 +211,34 @@ rte_eth_dev_allocated(const char *name) {
>>> unsigned i;
>>>
>>> - for (i = 0; i < nb_ports; i++) {
>>> - if (strcmp(rte_eth_devices[i].data->name, name) == 0)
>>> + for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
>>> + if ((rte_eth_devices[i].attached == DEV_CONNECTED) &&
>>> + strcmp(rte_eth_devices[i].data->name, name) == 0)
>>> return &rte_eth_devices[i];
>>> }
>>> return NULL;
>>> }
>>>
>>> +static uint8_t
>>> +rte_eth_dev_allocate_new_port(void)
>>> +{
>>> + unsigned i;
>>> +
>>> + for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
>>> + if (rte_eth_devices[i].attached == DEV_DISCONNECTED)
>>> + return i;
>>> + }
>>> + return RTE_MAX_ETHPORTS;
>>> +}
>>> +
>>> struct rte_eth_dev *
>>> rte_eth_dev_allocate(const char *name)
>>> {
>>> + uint8_t port_id;
>>> struct rte_eth_dev *eth_dev;
>>>
>>> - if (nb_ports == RTE_MAX_ETHPORTS) {
>>> + port_id = rte_eth_dev_allocate_new_port();
>>> + if (port_id == RTE_MAX_ETHPORTS) {
>>> PMD_DEBUG_TRACE("Reached maximum number of Ethernet ports\n");
>>> return NULL;
>>> }
>>> @@ -226,10 +251,12 @@ rte_eth_dev_allocate(const char *name)
>>> return NULL;
>>> }
>>>
>>> - eth_dev = &rte_eth_devices[nb_ports];
>>> - eth_dev->data = &rte_eth_dev_data[nb_ports];
>>> + eth_dev = &rte_eth_devices[port_id];
>>> + eth_dev->data = &rte_eth_dev_data[port_id];
>>> snprintf(eth_dev->data->name, sizeof(eth_dev->data->name), "%s", name);
>>> - eth_dev->data->port_id = nb_ports++;
>>> + eth_dev->data->port_id = port_id;
>>> + eth_dev->attached = DEV_CONNECTED;
>>> + nb_ports++;
>>> return eth_dev;
>>> }
>>>
>>> @@ -283,6 +310,7 @@ rte_eth_dev_init(struct rte_pci_driver *pci_drv,
>>> (unsigned) pci_dev->id.device_id);
>>> if (rte_eal_process_type() == RTE_PROC_PRIMARY)
>>> rte_free(eth_dev->data->dev_private);
>>> + eth_dev->attached = DEV_DISCONNECTED;
>>> nb_ports--;
>>> return diag;
>>> }
>>> @@ -308,10 +336,22 @@ rte_eth_driver_register(struct eth_driver *eth_drv)
>>> rte_eal_pci_register(ð_drv->pci_drv);
>>> }
>>>
>>> +static int
>>> +rte_eth_dev_validate_port(uint8_t port_id) {
>>> + if (port_id >= RTE_MAX_ETHPORTS)
>>> + return DEV_INVALID;
>>> +
>>> + if (rte_eth_devices[port_id].attached == DEV_CONNECTED)
>>> + return DEV_VALID;
>>> + else
>>> + return DEV_INVALID;
>>> +}
>>> +
>>> int
>>> rte_eth_dev_socket_id(uint8_t port_id)
>>> {
>>> - if (port_id >= nb_ports)
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID)
>>> return -1;
>>> return rte_eth_devices[port_id].pci_dev->numa_node;
>>> }
>>> @@ -369,7 +409,7 @@ rte_eth_dev_rx_queue_start(uint8_t port_id, uint16_t rx_queue_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -EINVAL;
>>> }
>>> @@ -395,7 +435,7 @@ rte_eth_dev_rx_queue_stop(uint8_t port_id, uint16_t rx_queue_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -EINVAL;
>>> }
>>> @@ -421,7 +461,7 @@ rte_eth_dev_tx_queue_start(uint8_t port_id, uint16_t tx_queue_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -EINVAL;
>>> }
>>> @@ -447,7 +487,7 @@ rte_eth_dev_tx_queue_stop(uint8_t port_id, uint16_t tx_queue_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -EINVAL;
>>> }
>>> @@ -703,7 +743,7 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports || port_id >= RTE_MAX_ETHPORTS) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-EINVAL);
>>> }
>>> @@ -888,7 +928,7 @@ rte_eth_dev_start(uint8_t port_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%" PRIu8 "\n", port_id);
>>> return (-EINVAL);
>>> }
>>> @@ -923,7 +963,7 @@ rte_eth_dev_stop(uint8_t port_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_RET();
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%" PRIu8 "\n", port_id);
>>> return;
>>> }
>>> @@ -951,7 +991,7 @@ rte_eth_dev_set_link_up(uint8_t port_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -EINVAL;
>>> }
>>> @@ -970,7 +1010,7 @@ rte_eth_dev_set_link_down(uint8_t port_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -EINVAL;
>>> }
>>> @@ -989,7 +1029,7 @@ rte_eth_dev_close(uint8_t port_id)
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_RET();
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1017,7 +1057,7 @@ rte_eth_rx_queue_setup(uint8_t port_id, uint16_t rx_queue_id,
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-EINVAL);
>>> }
>>> @@ -1090,7 +1130,7 @@ rte_eth_tx_queue_setup(uint8_t port_id, uint16_t tx_queue_id,
>>> * in a multi-process setup*/
>>> PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
>>>
>>> - if (port_id >= RTE_MAX_ETHPORTS || port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-EINVAL);
>>> }
>>> @@ -1123,7 +1163,7 @@ rte_eth_promiscuous_enable(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1139,7 +1179,7 @@ rte_eth_promiscuous_disable(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1155,7 +1195,7 @@ rte_eth_promiscuous_get(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -1;
>>> }
>>> @@ -1169,7 +1209,7 @@ rte_eth_allmulticast_enable(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1185,7 +1225,7 @@ rte_eth_allmulticast_disable(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1201,7 +1241,7 @@ rte_eth_allmulticast_get(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -1;
>>> }
>>> @@ -1229,7 +1269,7 @@ rte_eth_link_get(uint8_t port_id, struct rte_eth_link *eth_link) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1249,7 +1289,7 @@ rte_eth_link_get_nowait(uint8_t port_id, struct rte_eth_link *eth_link) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1269,7 +1309,7 @@ rte_eth_stats_get(uint8_t port_id, struct rte_eth_stats *stats) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1286,7 +1326,7 @@ rte_eth_stats_reset(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1307,7 +1347,7 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats,
>>> uint64_t val;
>>> char *stats_ptr;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -1;
>>> }
>>> @@ -1376,7 +1416,7 @@ rte_eth_xstats_reset(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1398,7 +1438,7 @@ set_queue_stats_mapping(uint8_t port_id, uint16_t queue_id, uint8_t
>>> stat_idx, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -1433,7 +1473,7 @@ rte_eth_dev_info_get(uint8_t port_id, struct rte_eth_dev_info *dev_info)
>>> {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1453,7 +1493,7 @@ rte_eth_macaddr_get(uint8_t port_id, struct ether_addr *mac_addr) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return;
>>> }
>>> @@ -1467,7 +1507,7 @@ rte_eth_dev_get_mtu(uint8_t port_id, uint16_t *mtu) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1483,7 +1523,7 @@ rte_eth_dev_set_mtu(uint8_t port_id, uint16_t mtu)
>>> int ret;
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1503,7 +1543,7 @@ rte_eth_dev_vlan_filter(uint8_t port_id, uint16_t vlan_id, int on) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1528,7 +1568,7 @@ rte_eth_dev_set_vlan_strip_on_queue(uint8_t port_id, uint16_t
>>> rx_queue_id, int o {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1550,7 +1590,7 @@ rte_eth_dev_set_vlan_ether_type(uint8_t port_id, uint16_t tpid) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1570,7 +1610,7 @@ rte_eth_dev_set_vlan_offload(uint8_t port_id, int offload_mask)
>>> int mask = 0;
>>> int cur, org = 0;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1615,7 +1655,7 @@ rte_eth_dev_get_vlan_offload(uint8_t port_id)
>>> struct rte_eth_dev *dev;
>>> int ret = 0;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1639,7 +1679,7 @@ rte_eth_dev_set_vlan_pvid(uint8_t port_id, uint16_t pvid, int on) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1657,7 +1697,7 @@ rte_eth_dev_fdir_add_signature_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1691,7 +1731,7 @@ rte_eth_dev_fdir_update_signature_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1725,7 +1765,7 @@ rte_eth_dev_fdir_remove_signature_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1756,7 +1796,7 @@ rte_eth_dev_fdir_get_infos(uint8_t port_id, struct rte_eth_fdir *fdir) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1781,7 +1821,7 @@ rte_eth_dev_fdir_add_perfect_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1821,7 +1861,7 @@ rte_eth_dev_fdir_update_perfect_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1859,7 +1899,7 @@ rte_eth_dev_fdir_remove_perfect_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1895,7 +1935,7 @@ rte_eth_dev_fdir_set_masks(uint8_t port_id, struct rte_fdir_masks
>>> *fdir_mask) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1915,7 +1955,7 @@ rte_eth_dev_flow_ctrl_get(uint8_t port_id, struct rte_eth_fc_conf
>>> *fc_conf) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1931,7 +1971,7 @@ rte_eth_dev_flow_ctrl_set(uint8_t port_id, struct rte_eth_fc_conf
>>> *fc_conf) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -1951,7 +1991,7 @@ rte_eth_dev_priority_flow_ctrl_set(uint8_t port_id, struct
>>> rte_eth_pfc_conf *pfc {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2030,7 +2070,7 @@ rte_eth_dev_rss_reta_update(uint8_t port_id,
>>> struct rte_eth_dev *dev;
>>> int ret;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -2081,7 +2121,7 @@ rte_eth_dev_rss_hash_update(uint8_t port_id, struct rte_eth_rss_conf
>>> *rss_conf)
>>> struct rte_eth_dev *dev;
>>> uint16_t rss_hash_protos;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2103,7 +2143,7 @@ rte_eth_dev_rss_hash_conf_get(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2118,7 +2158,7 @@ rte_eth_dev_udp_tunnel_add(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -2144,7 +2184,7 @@ rte_eth_dev_udp_tunnel_delete(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -2169,7 +2209,7 @@ rte_eth_led_on(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2184,7 +2224,7 @@ rte_eth_led_off(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2224,7 +2264,7 @@ rte_eth_dev_mac_addr_add(uint8_t port_id, struct ether_addr *addr,
>>> int index;
>>> uint64_t pool_mask;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2275,7 +2315,7 @@ rte_eth_dev_mac_addr_remove(uint8_t port_id, struct ether_addr *addr)
>>> struct rte_eth_dev *dev;
>>> int index;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2309,7 +2349,7 @@ rte_eth_dev_set_vf_rxmode(uint8_t port_id, uint16_t vf,
>>> struct rte_eth_dev *dev;
>>> struct rte_eth_dev_info dev_info;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("set VF RX mode:Invalid port_id=%d\n",
>>> port_id);
>>> return (-ENODEV);
>>> @@ -2364,7 +2404,7 @@ rte_eth_dev_uc_hash_table_set(uint8_t port_id, struct ether_addr *addr,
>>> int ret;
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("unicast hash setting:Invalid port_id=%d\n",
>>> port_id);
>>> return (-ENODEV);
>>> @@ -2417,7 +2457,7 @@ rte_eth_dev_uc_all_hash_table_set(uint8_t port_id, uint8_t on) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("unicast hash setting:Invalid port_id=%d\n",
>>> port_id);
>>> return (-ENODEV);
>>> @@ -2436,7 +2476,7 @@ rte_eth_dev_set_vf_rx(uint8_t port_id,uint16_t vf, uint8_t on)
>>> struct rte_eth_dev *dev;
>>> struct rte_eth_dev_info dev_info;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2462,7 +2502,7 @@ rte_eth_dev_set_vf_tx(uint8_t port_id,uint16_t vf, uint8_t on)
>>> struct rte_eth_dev *dev;
>>> struct rte_eth_dev_info dev_info;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("set pool tx:Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2487,7 +2527,7 @@ rte_eth_dev_set_vf_vlan_filter(uint8_t port_id, uint16_t vlan_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("VF VLAN filter:invalid port id=%d\n",
>>> port_id);
>>> return (-ENODEV);
>>> @@ -2518,7 +2558,7 @@ int rte_eth_set_queue_rate_limit(uint8_t port_id, uint16_t queue_idx,
>>> struct rte_eth_dev_info dev_info;
>>> struct rte_eth_link link;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("set queue rate limit:invalid port id=%d\n",
>>> port_id);
>>> return -ENODEV;
>>> @@ -2555,7 +2595,7 @@ int rte_eth_set_vf_rate_limit(uint8_t port_id, uint16_t vf, uint16_t tx_rate,
>>> if (q_msk == 0)
>>> return 0;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("set VF rate limit:invalid port id=%d\n",
>>> port_id);
>>> return -ENODEV;
>>> @@ -2589,7 +2629,7 @@ rte_eth_mirror_rule_set(uint8_t port_id, {
>>> struct rte_eth_dev *dev = &rte_eth_devices[port_id];
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2630,7 +2670,7 @@ rte_eth_mirror_rule_reset(uint8_t port_id, uint8_t rule_id) {
>>> struct rte_eth_dev *dev = &rte_eth_devices[port_id];
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2655,7 +2695,7 @@ rte_eth_rx_burst(uint8_t port_id, uint16_t queue_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return 0;
>>> }
>>> @@ -2675,7 +2715,7 @@ rte_eth_tx_burst(uint8_t port_id, uint16_t queue_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return 0;
>>> }
>>> @@ -2695,7 +2735,7 @@ rte_eth_rx_queue_count(uint8_t port_id, uint16_t queue_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return 0;
>>> }
>>> @@ -2709,7 +2749,7 @@ rte_eth_rx_descriptor_done(uint8_t port_id, uint16_t queue_id, uint16_t
>>> offset) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2730,7 +2770,7 @@ rte_eth_dev_callback_register(uint8_t port_id,
>>>
>>> if (!cb_fn)
>>> return (-EINVAL);
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-EINVAL);
>>> }
>>> @@ -2770,7 +2810,7 @@ rte_eth_dev_callback_unregister(uint8_t port_id,
>>>
>>> if (!cb_fn)
>>> return (-EINVAL);
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-EINVAL);
>>> }
>>> @@ -2830,7 +2870,7 @@ int rte_eth_dev_bypass_init(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2850,7 +2890,7 @@ rte_eth_dev_bypass_state_show(uint8_t port_id, uint32_t *state) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2869,7 +2909,7 @@ rte_eth_dev_bypass_state_set(uint8_t port_id, uint32_t *new_state) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2889,7 +2929,7 @@ rte_eth_dev_bypass_event_show(uint8_t port_id, uint32_t event, uint32_t
>>> *state) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2909,7 +2949,7 @@ rte_eth_dev_bypass_event_store(uint8_t port_id, uint32_t event, uint32_t
>>> state) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2929,7 +2969,7 @@ rte_eth_dev_wd_timeout_store(uint8_t port_id, uint32_t timeout) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2949,7 +2989,7 @@ rte_eth_dev_bypass_ver_show(uint8_t port_id, uint32_t *ver) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2969,7 +3009,7 @@ rte_eth_dev_bypass_wd_timeout_show(uint8_t port_id, uint32_t
>>> *wd_timeout) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -2989,7 +3029,7 @@ rte_eth_dev_bypass_wd_reset(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return (-ENODEV);
>>> }
>>> @@ -3011,7 +3051,7 @@ rte_eth_dev_add_syn_filter(uint8_t port_id, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3026,7 +3066,7 @@ rte_eth_dev_remove_syn_filter(uint8_t port_id) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3045,7 +3085,7 @@ rte_eth_dev_get_syn_filter(uint8_t port_id,
>>> if (filter == NULL || rx_queue == NULL)
>>> return -EINVAL;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3061,7 +3101,7 @@ rte_eth_dev_add_ethertype_filter(uint8_t port_id, uint16_t index, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3082,7 +3122,7 @@ rte_eth_dev_remove_ethertype_filter(uint8_t port_id, uint16_t index) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3101,7 +3141,7 @@ rte_eth_dev_get_ethertype_filter(uint8_t port_id, uint16_t index,
>>> if (filter == NULL || rx_queue == NULL)
>>> return -EINVAL;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3118,7 +3158,7 @@ rte_eth_dev_add_2tuple_filter(uint8_t port_id, uint16_t index, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3140,7 +3180,7 @@ rte_eth_dev_remove_2tuple_filter(uint8_t port_id, uint16_t index) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3159,7 +3199,7 @@ rte_eth_dev_get_2tuple_filter(uint8_t port_id, uint16_t index,
>>> if (filter == NULL || rx_queue == NULL)
>>> return -EINVAL;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3175,7 +3215,7 @@ rte_eth_dev_add_5tuple_filter(uint8_t port_id, uint16_t index, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3198,7 +3238,7 @@ rte_eth_dev_remove_5tuple_filter(uint8_t port_id, uint16_t index) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3217,7 +3257,7 @@ rte_eth_dev_get_5tuple_filter(uint8_t port_id, uint16_t index,
>>> if (filter == NULL || rx_queue == NULL)
>>> return -EINVAL;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3234,7 +3274,7 @@ rte_eth_dev_add_flex_filter(uint8_t port_id, uint16_t index, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3249,7 +3289,7 @@ rte_eth_dev_remove_flex_filter(uint8_t port_id, uint16_t index) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3268,7 +3308,7 @@ rte_eth_dev_get_flex_filter(uint8_t port_id, uint16_t index,
>>> if (filter == NULL || rx_queue == NULL)
>>> return -EINVAL;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3284,7 +3324,7 @@ rte_eth_dev_filter_supported(uint8_t port_id, enum rte_filter_type
>>> filter_type) {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> @@ -3301,7 +3341,7 @@ rte_eth_dev_filter_ctrl(uint8_t port_id, enum rte_filter_type filter_type, {
>>> struct rte_eth_dev *dev;
>>>
>>> - if (port_id >= nb_ports) {
>>> + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) {
>>> PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>>> return -ENODEV;
>>> }
>>> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index ce0528f..616a44a
>>> 100644
>>> --- a/lib/librte_ether/rte_ethdev.h
>>> +++ b/lib/librte_ether/rte_ethdev.h
>>> @@ -1565,6 +1565,7 @@ struct rte_eth_dev {
>>> struct eth_dev_ops *dev_ops; /**< Functions exported by PMD */
>>> struct rte_pci_device *pci_dev; /**< PCI info. supplied by probing */
>>> struct rte_eth_dev_cb_list callbacks; /**< User application callbacks */
>>> + uint8_t attached; /**< Flag indicating the port is attached */
>>> };
>>>
>>> struct rte_eth_dev_sriov {
>>> @@ -1630,6 +1631,10 @@ extern struct rte_eth_dev rte_eth_devices[];
>>> * initialized by the [matching] Ethernet driver during the PCI probing phase.
>>> * All devices whose port identifier is in the range
>>> * [0, rte_eth_dev_count() - 1] can be operated on by network applications.
>>> + * immediately after invoking rte_eal_init().
>>> + * If the application unplugs a port using hotplug function, The
>>> + enabled port
>>> + * numbers may be noncontiguous. In the case, the applications need to
>>> + manage
>>> + * enabled port by themselves.
>>> *
>>> * @return
>>> * - The total number of usable Ethernet devices.
>>> --
>>> 1.9.1
next prev parent reply other threads:[~2015-01-20 2:02 UTC|newest]
Thread overview: 364+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1418106629-22227-2-git-send-email-mukawa@igel.co.j>
[not found] ` <1418106629-22227-2-git-send-email-mukawa-AlSX/UN32fsRI6Z/4DGYtg@public.gmane.org>
2015-01-19 10:40 ` [PATCH v4 00/11] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1421664027-17971-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-01-19 10:40 ` [PATCH v4 01/11] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
[not found] ` <8CEF83825BEC744B83065625E567D7C2049D7C19@IRSMSX108.ger.corp.intel.com>
2015-01-19 14:24 ` FW: " Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB76AF-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-20 2:02 ` Tetsuya Mukawa [this message]
2015-01-19 10:40 ` [PATCH v4 02/11] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 03/11] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 04/11] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 05/11] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-01-21 2:40 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB7F5F-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-21 9:02 ` Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 06/11] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-01-20 9:23 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB7D11-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-21 0:17 ` Tetsuya Mukawa
2015-01-21 10:01 ` Tetsuya Mukawa
2015-01-22 8:12 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB882E-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-22 10:15 ` Tetsuya Mukawa
2015-01-23 2:54 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB8B2A-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-23 3:20 ` Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 07/11] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-01-21 2:55 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB7F7B-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-21 6:33 ` Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 08/11] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
[not found] ` <1421664027-17971-9-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-01-30 5:42 ` [PATCH v5 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1422596563-26310-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-01-30 5:42 ` [PATCH v5 01/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 02/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 03/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 04/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 05/13] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 06/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 07/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 08/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 09/13] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 10/13] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 11/13] ethdev: Add one dev_type paramerter to rte_eth_dev_allocate Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5 13/13] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-01-30 5:42 ` [PATCH v5] testpmd: " Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1422763322-13742-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-01 4:01 ` [PATCH v6 01/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 02/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 03/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
[not found] ` <1422763322-13742-4-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-09 8:30 ` [PATCH v7 00/14] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1423470639-15744-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-09 8:30 ` [PATCH v7 01/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
[not found] ` <1423470639-15744-2-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 4:14 ` [PATCH v8 00/14] Port Hotplug Framework Tetsuya Mukawa
2015-02-16 5:13 ` Qiu, Michael
2015-02-16 4:14 ` [PATCH v8 01/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
[not found] ` <1424060073-23484-2-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:14 ` Iremonger, Bernard
2015-02-17 0:12 ` Thomas Monjalon
2015-02-17 3:09 ` Qiu, Michael
2015-02-20 6:39 ` [PATCH v10 00/14] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424414390-18509-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-20 6:39 ` [PATCH v10 01/14] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 02/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 03/14] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 04/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 05/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
[not found] ` <1424414390-18509-6-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-23 5:09 ` [PATCH v11 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424668171-8695-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-23 5:09 ` [PATCH v11 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
[not found] ` <1424668171-8695-9-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-23 11:01 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EBD15-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-23 11:32 ` Tetsuya Mukawa
[not found] ` <54EB0FE1.7060301-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-23 11:39 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EBD4D-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-23 11:40 ` Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
[not found] ` <1424668171-8695-13-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-23 13:29 ` Maxime Leroy
[not found] ` <CAEykdvo32gSCoy-tLYPdU1+CsBvnf6V0dRhH9QHftUYacdVuTw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-24 4:48 ` Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-23 5:09 ` [PATCH v11] testpmd: " Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 06/14] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 07/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 08/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 09/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 10/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 11/14] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 12/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 13/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
[not found] ` <1424414390-18509-14-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-20 10:14 ` Maxime Leroy
[not found] ` <CAEykdvpbx=n60XbjSBQnZJN7=t3o2CncC2hMo9ytB7V2GsL+RQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-20 10:32 ` Tetsuya Mukawa
[not found] ` <54E70D38.6090209-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-20 15:20 ` Maxime Leroy
[not found] ` <CAEykdvqQZBb4BSqX1iyWks_R9T4KkLk119rJZZERT=UCOUQdSQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-21 3:49 ` Tetsuya Mukawa
[not found] ` <54E8003C.9080405-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-21 12:49 ` Maxime Leroy
[not found] ` <CAEykdvryOkOC9kJ0OybfTe1wzdhUkyXMHVR1YSz0tYpu0Ab0DQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-22 3:04 ` Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-20 6:39 ` [PATCH v10] testpmd: " Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424695564-3913-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-23 12:45 ` [PATCH v12 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-23 12:45 ` [PATCH v12 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-23 12:46 ` [PATCH v12 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-23 12:46 ` [PATCH v12 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-23 12:46 ` [PATCH v12 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-23 12:46 ` [PATCH v12] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-23 12:46 ` [PATCH v12] testpmd: " Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424753389-29864-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-24 4:49 ` [PATCH v13 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
[not found] ` <1424753389-29864-13-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-24 13:25 ` Maxime Leroy
[not found] ` <CAEykdvrsDMMgPYu42v=zpUSe3CTpYo5aJT13dNwK4V3OVdMYYQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-24 14:29 ` Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-24 4:49 ` [PATCH v13] testpmd: " Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424837093-5661-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-25 4:04 ` [PATCH v14 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 08/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 09/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 10/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 11/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
[not found] ` <1424837093-5661-13-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-25 11:21 ` Thomas Monjalon
2015-02-25 12:32 ` Tetsuya Mukawa
[not found] ` <CAKU8wkeFtGvjdchjEYqd3jpvCYL-QhoWV9qLyWKKvnFK-LvS_A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-25 14:00 ` Thomas Monjalon
2015-02-25 14:56 ` Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 00/13] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424892749-31862-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-25 19:32 ` [PATCH v15 01/13] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 02/13] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 03/13] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 04/13] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 05/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 06/13] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 07/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 08/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 09/13] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 10/13] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 11/13] eal/pci: Add vdev driver initialization and uninitialization functions Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 12/13] ethdev: Add rte_eth_dev_attach/detach() functions Tetsuya Mukawa
2015-02-25 19:32 ` [PATCH v15 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
[not found] ` <1424892749-31862-14-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-03-02 19:03 ` Butler, Siobhan A
2015-02-25 19:32 ` [PATCH v15] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
[not found] ` <1424892749-31862-15-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-25 23:27 ` Thomas Monjalon
2015-02-25 19:32 ` [PATCH v15] testpmd: " Tetsuya Mukawa
[not found] ` <1424892749-31862-16-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-25 23:27 ` Thomas Monjalon
2015-02-26 18:49 ` De Lara Guarch, Pablo
[not found] ` <E115CCD9D858EF4F90C690B0DCB4D89727264B19-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-27 6:14 ` Tetsuya Mukawa
[not found] ` <54F00B63.5050003-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-27 23:32 ` Thomas Monjalon
2015-03-03 15:54 ` De Lara Guarch, Pablo
[not found] ` <E115CCD9D858EF4F90C690B0DCB4D897272662ED-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-03-05 6:23 ` Tetsuya Mukawa
2015-02-25 23:26 ` [PATCH v15 00/13] Port Hotplug Framework Thomas Monjalon
2015-02-25 4:04 ` [PATCH v14 13/13] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-25 4:04 ` [PATCH v14] testpmd: " Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 02/14] eal_pci: pci memory map work with driver type Tetsuya Mukawa
[not found] ` <1424060073-23484-3-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:15 ` Iremonger, Bernard
2015-02-16 4:14 ` [PATCH v8 03/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
[not found] ` <1424060073-23484-4-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:17 ` Iremonger, Bernard
2015-02-17 0:36 ` Thomas Monjalon
2015-02-17 6:14 ` Tetsuya Mukawa
[not found] ` <54E2DC38.7000907-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 0:31 ` Thomas Monjalon
2015-02-18 1:54 ` Tetsuya Mukawa
[not found] ` <54E3F0F0.1030102-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 6:10 ` Tetsuya Mukawa
[not found] ` <54E42CCD.6020900-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 9:27 ` Iremonger, Bernard
2015-02-18 9:57 ` Thomas Monjalon
2015-02-18 10:03 ` Bruce Richardson
2015-02-18 10:58 ` Tetsuya Mukawa
[not found] ` <54E4703E.1010904-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 12:23 ` Bruce Richardson
2015-02-18 12:38 ` Tetsuya Mukawa
2015-02-18 12:33 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EACCC-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-18 12:41 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 04/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
[not found] ` <1424060073-23484-5-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:19 ` Iremonger, Bernard
2015-02-17 0:44 ` Thomas Monjalon
2015-02-17 6:14 ` Tetsuya Mukawa
[not found] ` <54E2DC61.9010804-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 1:02 ` Thomas Monjalon
2015-02-18 1:55 ` Tetsuya Mukawa
[not found] ` <54E3F10A.4090303-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 10:26 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EAA9F-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-18 10:32 ` Thomas Monjalon
2015-02-18 11:39 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EAB13-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-18 12:20 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 05/14] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
[not found] ` <1424060073-23484-6-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:20 ` Iremonger, Bernard
2015-02-17 0:46 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 06/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
[not found] ` <1424060073-23484-7-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:22 ` Iremonger, Bernard
2015-02-17 0:56 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 07/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
[not found] ` <1424060073-23484-8-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 12:41 ` Neil Horman
[not found] ` <20150216124146.GA18670-0o1r3XBGOEbbgkc5XkKeNuvMHUBZFtU3YPYVAmT7z5s@public.gmane.org>
2015-02-17 5:54 ` Tetsuya Mukawa
2015-02-16 16:23 ` Iremonger, Bernard
2015-02-17 1:04 ` Thomas Monjalon
2015-02-17 8:50 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 08/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
[not found] ` <1424060073-23484-9-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 12:45 ` Neil Horman
[not found] ` <20150216124513.GB18670-0o1r3XBGOEbbgkc5XkKeNuvMHUBZFtU3YPYVAmT7z5s@public.gmane.org>
2015-02-17 5:53 ` Tetsuya Mukawa
2015-02-16 16:25 ` Iremonger, Bernard
2015-02-17 1:11 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
[not found] ` <54E2DC82.8070901-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 1:09 ` Thomas Monjalon
2015-02-18 9:37 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 09/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
[not found] ` <1424060073-23484-10-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:26 ` Iremonger, Bernard
2015-02-16 4:14 ` [PATCH v8 10/14] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
[not found] ` <1424060073-23484-11-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:27 ` Iremonger, Bernard
2015-02-17 1:18 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 11/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
[not found] ` <1424060073-23484-12-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:28 ` Iremonger, Bernard
2015-02-17 1:24 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 00/14] Port Hotplug Framework Tetsuya Mukawa
[not found] ` <1424314187-25177-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 2:49 ` [PATCH v9 01/14] eal: Enable port Hotplug framework in Linux Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 02/14] eal_pci: Add flag to hold kernel driver type Tetsuya Mukawa
[not found] ` <1424314187-25177-3-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 11:17 ` Thomas Monjalon
2015-02-19 13:29 ` Tetsuya Mukawa
[not found] ` <54E5E547.2020806-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-20 5:18 ` Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 03/14] eal_pci: pci memory map work with " Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 04/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 05/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 06/14] ethdev: Add rte_eth_dev_release_port to release specified port Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 07/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
[not found] ` <1424314187-25177-8-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 14:31 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EB1A3-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-20 1:17 ` Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 08/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
[not found] ` <1424314187-25177-9-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 11:24 ` Thomas Monjalon
2015-02-19 13:29 ` Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 09/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 10/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 11/14] eal/pci: Add probe and close functions of pci driver Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 12/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
[not found] ` <1424314187-25177-13-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 14:51 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049EB1D6-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-20 1:18 ` Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 13/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
[not found] ` <1424314187-25177-14-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 12:10 ` Thomas Monjalon
2015-02-19 13:30 ` Tetsuya Mukawa
[not found] ` <54E5E55F.7020905-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-19 13:37 ` Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-19 2:49 ` [PATCH v9] testpmd: " Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 12/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
[not found] ` <1424060073-23484-13-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:30 ` Iremonger, Bernard
2015-02-17 1:48 ` Thomas Monjalon
2015-02-17 8:51 ` Tetsuya Mukawa
[not found] ` <54E300F8.8000503-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-17 9:23 ` Thomas Monjalon
2015-02-17 10:26 ` Tetsuya Mukawa
[not found] ` <54E31762.5070106-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-18 1:17 ` Thomas Monjalon
2015-02-18 1:55 ` Tetsuya Mukawa
2015-02-17 16:15 ` Maxime Leroy
[not found] ` <CAEykdvq3aOTvTgCN5-96wO7UVM6zsJXsSJoiV2iF9cLJhz2jpg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-18 1:54 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 13/14] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
[not found] ` <1424060073-23484-14-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:30 ` Iremonger, Bernard
2015-02-17 1:25 ` Thomas Monjalon
2015-02-17 6:15 ` Tetsuya Mukawa
2015-02-16 4:14 ` [PATCH v8 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
[not found] ` <1424060073-23484-15-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:32 ` Iremonger, Bernard
2015-02-16 4:15 ` [PATCH v8] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
[not found] ` <1424060126-23545-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:36 ` Iremonger, Bernard
2015-02-16 4:15 ` [PATCH v8] testpmd: " Tetsuya Mukawa
[not found] ` <1424060138-23589-1-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-16 16:35 ` Iremonger, Bernard
2015-02-09 8:30 ` [PATCH v7 02/14] eal_pci: pci memory map work with driver type Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 03/14] eal/pci, ethdev: Remove assumption that port will not be detached Tetsuya Mukawa
2015-02-09 8:52 ` Qiu, Michael
[not found] ` <1423470639-15744-4-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-09 15:16 ` Iremonger, Bernard
2015-02-09 8:30 ` [PATCH v7 04/14] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-09 13:10 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CE71EA-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-10 15:08 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DF5CA-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-11 2:51 ` Tetsuya Mukawa
2015-02-11 3:27 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CE7D25-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-11 4:53 ` Tetsuya Mukawa
[not found] ` <54DAE045.6000208-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-11 4:57 ` Tetsuya Mukawa
2015-02-11 6:29 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CE7E63-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-11 8:14 ` Tetsuya Mukawa
2015-02-11 12:13 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CE821D-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-12 1:44 ` Tetsuya Mukawa
[not found] ` <54DC0574.6000006-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-12 13:55 ` Iremonger, Bernard
2015-02-09 8:30 ` [PATCH v7 05/14] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 06/14] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 07/14] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
[not found] ` <1423470639-15744-8-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-09 15:34 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DF12D-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-10 1:30 ` Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 08/14] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
[not found] ` <1423470639-15744-9-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-09 13:44 ` Iremonger, Bernard
2015-02-09 8:30 ` [PATCH v7 09/14] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 10/14] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 11/14] ethdev: Add one dev_type parameter to rte_eth_dev_allocate Tetsuya Mukawa
[not found] ` <1423470639-15744-12-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-09 15:03 ` Iremonger, Bernard
2015-02-09 8:30 ` [PATCH v7 12/14] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 13/14] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7 14/14] doc: Add port hotplug framework section to programmers guide Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-09 8:30 ` [PATCH v7] testpmd: " Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 04/13] eal/pci: Consolidate pci address comparison APIs Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 05/13] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 06/13] eal, ethdev: Add a function and function pointers to close ether device Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 07/13] ethdev: Add functions that will be used by port hotplug functions Tetsuya Mukawa
2015-02-03 2:37 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD3AFD-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 4:07 ` Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 08/13] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 09/13] eal/pci: Add a function to remove the entry of devargs list Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 10/13] eal/pci: Cleanup pci driver initialization code Tetsuya Mukawa
2015-02-03 2:35 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD3AE6-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 4:07 ` Tetsuya Mukawa
2015-02-03 5:05 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD3DE7-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 8:00 ` Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 11/13] ethdev: Add one dev_type paramerter to rte_eth_dev_allocate Tetsuya Mukawa
2015-02-01 4:01 ` [PATCH v6 12/13] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-02-02 5:42 ` Qiu, Michael
2015-02-02 6:22 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD25B9-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 1:28 ` Tetsuya Mukawa
2015-02-01 4:02 ` [PATCH v6 13/13] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-02-01 4:02 ` [PATCH v6] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-02-01 4:02 ` [PATCH v6] testpmd: " Tetsuya Mukawa
[not found] ` <1422763322-13742-16-git-send-email-mukawa-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-02 11:33 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DCAD2-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02 11:57 ` Thomas Monjalon
2015-02-03 1:34 ` Tetsuya Mukawa
2015-02-03 1:32 ` Tetsuya Mukawa
[not found] ` <54D0251C.2050407-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-02-03 10:03 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DCF56-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 10:31 ` Tetsuya Mukawa
2015-02-03 6:15 ` Qiu, Michael
2015-02-03 9:14 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD3F7D-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 10:29 ` Tetsuya Mukawa
2015-02-04 1:44 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD420D-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-05 1:37 ` Tetsuya Mukawa
2015-02-03 6:59 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CD3EA9-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-03 10:26 ` Tetsuya Mukawa
2015-02-03 13:03 ` [PATCH v6 00/13] Port Hotplug Framework Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DD1B6-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-05 1:32 ` Tetsuya Mukawa
2015-02-03 18:35 ` Iremonger, Bernard
[not found] ` <8CEF83825BEC744B83065625E567D7C2049DD28E-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-05 1:34 ` Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 09/11] ethdev: Add one dev_type paramerter to rte_eth_dev_allocate Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 10/11] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa
2015-01-21 3:49 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CB7FB0-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-21 6:34 ` Tetsuya Mukawa
2015-01-19 10:40 ` [PATCH v4 11/11] eal: Enable port hotplug framework in Linux Tetsuya Mukawa
2015-01-19 13:15 ` [PATCH v4 00/11] Port Hotplug Framework Qiu, Michael
2015-01-27 3:00 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CBA74A-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-27 5:01 ` Tetsuya Mukawa
2015-01-27 5:50 ` Qiu, Michael
[not found] ` <533710CFB86FA344BFBF2D6802E60286CBAA6D-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-27 7:24 ` Tetsuya Mukawa
2015-01-19 10:41 ` [PATCH v4] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa
2015-01-19 10:42 ` [PATCH v4] testpmd: " Tetsuya Mukawa
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=54BDB730.3030209@igel.co.jp \
--to=mukawa-alsx/un32fvpdbfq/vqriq@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=michael.qiu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.