On 06/15/2016 04:27 PM, Ananyev, Konstantin wrote:
>
>
>> -Original Message-
>> From: Richardson, Bruce
>> Sent: Wednesday, June 15, 2016 3:22 PM
>> To: Ananyev, Konstantin
>> Cc: Ivan Boule; Thomas Monjalon; Pattan, Reshma; dev at dpdk.org
>> Sub
ddress this issue, as locks MUST NEVER
be introduced in the RX/TX path of the DPDK framework.
Of course, the same issues stand for TX callbacks.
Regards,
Ivan
--
Ivan Boule
6WIND Development Engineer
On 05/03/2016 11:45 AM, Bruce Richardson wrote:
> On Mon, May 02, 2016 at 05:29:37PM +0530, Jerin Jacob wrote:
>> prefetch the next packet data address in advance in macswap loop
>> for performance improvement.
>>
>> ...
>> for (i = 0; i < nb_rx; i++) {
>> +if (likely(i < nb_rx -
>> ge-0/0/0 {
>> unit 0 {
>> family inet {
>> address 10.1.1.102/24;
>> }
>> }
>> }
>>
>> [edit]
>> root at mx86-bgl-2-r1# run ping 10.1.1.101
>> PING 10.1.1.101 (10.1.1.101): 56 data bytes
>> ^C
>>
;);
>> printf("Santosh %s returning \n",__FUNCTION__);
>> return;
>> }
>>
>>
>> 8. If I remove the above "return" statement, build the driver, loaded
>> in router and repeat the steps-2 to steps-5 of MAC add
gt; in router and repeat the steps-2 to steps-5 of MAC add and MAC delete
> on our router then ping passes.
>
> root at mx86-bgl-1-r1# run ping 10.1.1.101
> PING 10.1.1.101 (10.1.1.101): 56 data bytes
> 64 bytes from 10.1.1.101: icmp_seq=0 ttl=64 time=2.356 ms
> 64 bytes from
rio . If I
> remove "return" what will be the consequences ?
>
> If removing "return" statement is not good idea then what are other
> way to handle MAC delete scenario ? we have only 1 VF per PF in our
> setup as of now.
>
>
> Thanks
> Santosh
>
--
On 02/12/2016 12:44 PM, Ananyev, Konstantin wrote:
>
>>
>>> -Original Message-
...
>>
>> In that case we don't need to make any changes at rte_ethdev.[h,c] to
>> alloc/free/maintain tx_buffer inside each queue...
>> It all will be upper layer responsibility.
>> So no need to modify
architecture-dependent device binding services to be
invoked by PMDs at PCI device probing time.
My 2 cents,
Ivan
--
Ivan Boule
6WIND Development Engineer
tance).
> Or perhaps, to maintain backward compatibility, just a flag inside the mbuf
> could be set that informs the user that at the end of the mbuf packet, you
> can find 4 bytes with the CRC.
>
>>
>> Let's see what others, if any, that might care think about such a change into
>> the CRC stripping semantics.
>
> Thanks!
> Francesco
>
--
Ivan Boule
6WIND Development Engineer
the packet length
, for instance).
Let's see what others, if any, that might care think about such a change
into the CRC stripping semantics.
Ivan
--
Ivan Boule
6WIND Development Engineer
Hi Jijiang,
See my comments inline below prefixewd with IB>
Ivan
On 12/18/2015 03:00 AM, Liu, Jijiang wrote:
> Hi Boule,
>
>> -Original Message-
>> From: Ivan Boule [mailto:ivan.boule at 6wind.com]
>> Sent: Tuesday, December 15, 2015 4:50 PM
>> To: Li
way, as far as I know, the Linux kernel does not [need to] save
tunnel data or ARP entries behind "netdevice" structures.
PS : in the "rte_eth_tunnel_conf" data structure, I think that the first
field should be named "rx_queue" instead of "tx_queue".
Regards,
Ivan
--
Ivan Boule
6WIND Development Engineer
On 05/28/2015 06:21 PM, Stephen Hemminger wrote:
> On Thu, 28 May 2015 17:05:18 +0200
> Ivan Boule wrote:
>
>> Introduce PMD API to set the list of multicast MAC addresses filtered
>> by a port.
>> Implemented in the following PMDs: igb, igbvf, em, ixgbe, and
such cases, joined multicast addresses must be individually added
in the set of multicast addresses that are filtered by the [VF] port.
For this purpose, a new function "set_mc_addr_list" is introduced
into the set of functions that are exported by a Poll Mode Driver.
Signed-off-by: Iva
On 05/28/2015 06:22 PM, Stephen Hemminger wrote:
> On Thu, 28 May 2015 17:05:19 +0200
> Ivan Boule wrote:
>
>> +if (port_id >= nb_ports) {
>> +PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
>> +return -ENODEV;
>>
the request IP
source address,
- re-compute the IP header checksum.
Otherwise
- switch the request IP source and destination addresses in the
reply,
- keep the IP header checksum unchanged.
Signed-off-by: Ivan Boule
---
app/test-pmd/icmpecho.c | 65
Support the function "set_mc_addr_list" in the "ixgbe" and in the
"ixgbe-vf" Poll Mode Drivers.
Signed-off-by: Ivan Boule
---
drivers/net/ixgbe/ixgbe_ethdev.c | 32
1 file changed, 32 insertions(+)
diff --git a/drivers/net/ixgb
Support the PMD function "set_mc_addr_list" in the "igb", "igb-vf",
and "em" Poll Mode Drivers.
Signed-off-by: Ivan Boule
---
drivers/net/e1000/em_ethdev.c | 17 +
drivers/net/e1000/igb_ethdev.c | 18 ++
2 fil
Add the new interactive command:
mcast_addr add|remove X
to add/remove the multicast MAC address to/from the set of
multicast addresses filtered by port .
Command used to test the function "rte_eth_dev_set_mc_addr_list"
that has been added to the API of PMDs.
Signed-off-by:
such cases, joined multicast addresses must be individually added
in the set of multicast addresses that are filtered by the [VF] port.
For this purpose, a new function "set_mc_addr_list" is introduced
into the set of functions that are exported by a Poll Mode Driver.
Signed-off-by:
Introduce PMD API to set the list of multicast MAC addresses filtered
by a port.
Implemented in the following PMDs: igb, igbvf, em, ixgbe, and ixgbevf.
Implementation for physical PMDs i40e, i40evf, enic, and fm10k left
to their respective maintainers.
Ivan Boule (5):
ethdev: add multicast
Hi Avi,
On 05/07/2015 04:02 PM, Avi Kivity wrote:
> On Wed, Apr 22, 2015 at 6:11 PM, O'Driscoll, Tim
> wrote:
>
>> Does anybody have any input or comments on this?
>>
>>
>>> -Original Message-
>>> From: O'Driscoll, Tim
>>> Sent: Thursday, April 16, 2015 11:39
id,
struct ether_addr *mc_addr_set,
uint32_t nb_mc_addr);
--
Ivan Boule
6WIND Development Engineer
On 11/27/2014 12:48 PM, Thomas Monjalon wrote:
> It was impossible to include netinet/in.h and rte_ip.h
> because the IP protocols were redefined.
> It is removed because useless.
>
> Signed-off-by: Thomas Monjalon
Acked by Ivan Boule
--
Ivan Boule
6WIND Development Engineer
)
> + rte_free(internals);
> + return -1;
> +}
> +
> +static inline int
> +get_packet_size_arg(const char *key __rte_unused,
> + const char *value, void *extra_args)
> +{
> + const char *a = value;
> + unsigned *packet_size = extra_args;
&
Regards,
>> Olivier
>>
>> [1] http://dpdk.org/ml/archives/dev/2014-May/002537.html
>> [2] http://dpdk.org/ml/archives/dev/2014-May/002322.html
>
> Hi Olivier
>
> I am trying to convince you on the new field of "filter status".
> It is for matched Flow Director Filter ID, and might be reused for HASH
> signature if it matches hash filter, or others.
> It is quite useful for Flow Director, and not a flag. I guess there should
> have the similar feature even in non-Intel NICs.
>
By construction, since a packet cannot match more than 1 filter with an
associated identifier, this is typically the kind of field that should
be put in an union with the standard 32-bit RSS id.
Regards,
Ivan
> Regards,
> Helin
>
--
Ivan Boule
6WIND Development Engineer
able
>Packet Framework librte_table: Build infrastructure
>Packet Framework librte_pipeline: Pipeline
>librte_cfgfile: interpret config files
> Packet Framework performance application
>Packet Framework IPv4 pipeline sample app
>Packet Framework unit tests
>
Acked by: Ivan Boule
--
Ivan Boule
6WIND Development Engineer
cation where meta-data
> _can_ be placed, if somebody needs a different offset, they can add it on top
> of the mbuf->metadata (e.g. by having a reserved field in their struct
> app_pkt_metadata). We have demonstrated the use of meta-data in the
> examples/ip_pipeline sample app (
functionality of setting link up and link
> down in testpmd.
>
Acked by: Ivan Boule
--
Ivan Boule
6WIND Development Engineer
set/sizeof(uint32_t)])
> +#define RTE_MBUF_METADATA_UINT64_PTR(mbuf, offset)
> (>metadata64[offset/sizeof(uint64_t)])
> +
> /**
>* Given the buf_addr returns the pointer to corresponding mbuf.
>*/
>
--
Ivan Boule
6WIND Development Engineer
nce if use " dev_link_start/stop" or " dev_link_up/down"?
>> to me, admin_link_up/down is better than dev_link_start/stop,
>>
>> If most people think we need change the name, it is ok to rename it.
>>
>> I don't think we need it in non-physical PMDs. So
> I don't think we need it in non-physical PMDs. So no implementation in virtio
> PMD.
>
> Thanks
> Changchun
>
>
> -Original Message-
> From: Ivan Boule [mailto:ivan.boule at 6wind.com]
> Sent: Thursday, May 22, 2014 9:17 PM
> To: Ouyang, Changchun; dev a
_RET(*dev->dev_ops->mac_addr_add, -ENOTSUP);
rte_eth_macaddr_get(port_id, _addr);
diag = rte_eth_dev_mac_addr_remove(port_id, _addr);
if (diag < 0)
return diag;
return rte_eth_dev_mac_addr_add(port_id, addr);
}
Regards,
Ivan
On 05/15/2014
Add the command "port config X rss-hash-key key" in the 'testpmd'
application to configure the RSS hash key used to compute the RSS
hash of input [IP] packets received on port X.
Signed-off-by: Ivan Boule
---
app/test-pmd/cmdline.c | 96 +++
ot;show port X rss-hash [key]" in the testpmd application
to display the RSS hash configuration of port X.
Signed-off-by: Ivan Boule
---
app/test-pmd/cmdline.c | 63 +
app/test-pmd/config.c | 65 +++
cally
only changes the RSS hash computation parameters of a port, without needing
to previously stop the port.
Signed-off-by: Ivan Boule
---
app/test-pmd/cmdline.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd
ey used by a NIC consists in
updating appropriate PCI registers of the NIC.
These operations have been manually tested with the interactive commands
"write reg" and "write regbit" of the testpmd application.
Signed-off-by: Ivan Boule
---
lib/librte_ether/rte_ethdev.c
(16) and are strictly lower than the number of
RX queues of the port.
Signed-off-by: Ivan Boule
---
lib/librte_ether/rte_ethdev.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index a5727dd..473c98b
xgbe PMDs, add tests
that do not allow RSS to be dynamically enabled or disabled.
--
Ivan Boule
Ivan Boule (5):
ethdev: check RX queue indices in RETA config against number of queues
ethdev: allow to set RSS hash computation flags and/or key
app/testpmd: configure RSS without restart
ethd
; +list_pkt_forwarding_modes());
> printf(" --rss-ip: set RSS functions to IPv4/IPv6 only .\n");
> printf(" --rss-udp: set RSS functions to IPv4/IPv6 + UDP.\n");
> printf(" --rxq=N: set the number of RX queues per port to N.\n");
> diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
> index 52d3543..0e4a35e 100644
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> @@ -491,6 +491,7 @@ void tx_cksum_set(portid_t port_id, uint8_t cksum_mask);
> void set_verbose_level(uint16_t vb_level);
> void set_tx_pkt_segments(unsigned *seg_lengths, unsigned nb_segs);
> void set_nb_pkt_per_burst(uint16_t pkt_burst);
> +char *list_pkt_forwarding_modes(void);
> void set_pkt_forwarding_mode(const char *fwd_mode);
> void start_packet_forwarding(int with_tx_first);
> void stop_packet_forwarding(void);
Acked by: Ivan Boule
--
Ivan Boule
6WIND Development Engineer
t;mac_addr_set)(dev, addr);
> + else {
> + FUNC_PTR_OR_ERR_RET(*dev->dev_ops->mac_addr_add, -ENOTSUP);
> + (*dev->dev_ops->mac_addr_add)(dev, addr, 0, 0);
> + }
> +
> + ether_addr_copy(addr, >data->mac_addrs[0]);
> +
> + return 0;
> +}
> +
> +int
> rte_eth_dev_vlan_filter(uint8_t port_id, uint16_t vlan_id, int on)
> {
> struct rte_eth_dev *dev;
>
>
--
Ivan BOULE
6WIND
Software Engineer
; +{
> + rte_atomic64_t *dst = (rte_atomic64_t *)>data->dev_link;
> +
> + rte_atomic64_set(dst, *(int64_t *)link);
> +}
> +
>
>
--
Ivan BOULE
6WIND
Software Engineer
ated on the fly.
> As I remember that was the reason why we allow only dev_rss_reta_update() to
> be used dynamically (without dev_start/dev_stop).
>
> Konstantin
>
>
>
> -Original Message-
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ivan Boule
> Se
When initializing a VF with no initial MAC address assigned by
the underlying Host PF driver, assign a default MAC address.
Signed-off-by: Ivan Boule
---
lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 54 +--
1 file changed, 46 insertions(+), 8 deletions(-)
diff --git
, in order
to reset the data sent in a previous VF/PF exchange (in either side),
including the last exchange performed by another Guest OS to which that VF
was previously assigned.
Signed-off-by: Ivan Boule
---
lib/librte_pmd_ixgbe/ixgbe/ixgbe_mbx.c | 22 ++
1 file changed, 22
DK VF".
Ivan Boule (5):
[PATCH 1/5] ixgbe: add/remove a MAC address to/from a VF
[PATCH 2/5] ixgbe: avoid adding twice the permanent MAC address of a VF
[PATCH 3/5] ixgbe: skip NULL & permanent MAC addresses of a VF
[PATCH 4/5] ixgbe: reset unused VF mailbox data registers
[PATCH 5/5]
rxdctl |= ((rxq->hthresh & 0x1F) << 8);
> - if (hw->mac.type == e1000_82576) {
> + if (hw->mac.type == e1000_vfadapt) {
> /*
>* Workaround of 82576 VF Erratum
>* force set WTHRESH to 1
Acked.
Thanks.
--
Ivan Boule
6WIND Development Engineer
.c
> b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> index 55414b9..7930dbd 100644
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> @@ -3594,6 +3594,10 @@ ixgbevf_dev_rx_init(struct rte_eth_dev *dev)
> PMD_INIT_FUNC_TRACE();
> hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>
> + /* setup MTU */
> + ixgbevf_rlpml_set_vf(hw,
> + (uint16_t)dev->data->dev_conf.rxmode.max_rx_pkt_len);
> +
> /* Setup RX queues */
> dev->rx_pkt_burst = ixgbe_recv_pkts;
> for (i = 0; i < dev->data->nb_rx_queues; i++) {
Acked.
Thanks.
--
Ivan Boule
6WIND Development Engineer
t;
> -Original Message-----
> From: Ivan Boule [mailto:ivan.boule at 6wind.com]
> Sent: Wednesday, April 30, 2014 10:49 AM
> To: Ananyev, Konstantin; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] ixgbevf jumbo frame issue with DPDK VF
>
> Hi Konstantin,
>
> The content's
Add the command "port config X rss-hash-key key" in the 'testpmd'
application to configure the RSS hash key used to compute the RSS
hash of input [IP] packets received on port X.
Signed-off-by: Ivan Boule
---
app/test-pmd/cmdline.c | 96 +++
ot;show port X rss-hash [key]" in the testpmd application
to display the RSS hash configuration of port X.
Signed-off-by: Ivan Boule
---
app/test-pmd/cmdline.c | 63 +
app/test-pmd/config.c | 65 +++
cally
only changes the RSS hash computation parameters of a port, without needing
to previously stop the port.
Signed-off-by: Ivan Boule
---
app/test-pmd/cmdline.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd
Note:
Configuring the RSS hash flags and the RSS key used by a NIC consists in
updating appropriate PCI registers of the NIC.
These operations have been manually tested with the interactive commands
"write reg" and "write regbit" of the testpmd application.
S
(16) and are strictly lower than the number of
RX queues of the port.
Signed-off-by: Ivan Boule
---
lib/librte_ether/rte_ethdev.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index a5727dd..473c98b
This set of patches allows to dynamically get and set the RSS configuration of a
port:
- rss functions (IP/UDP/TCP ...)
- rss hash key
--
Ivan Boule
Ivan Boule (5):
ethdev: check RX queue indices in RETA config against number of
queues
ethdev: allow to set RSS hash computation flags
x.c
> b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> index 55414b9..7930dbd 100644
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
> @@ -3594,6 +3594,10 @@ ixgbevf_dev_rx_init(struct rte_eth_dev *dev)
> PMD_INIT_FUNC_TRACE();
> hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>
> + /* setup MTU */
> + ixgbevf_rlpml_set_vf(hw,
> + (uint16_t)dev->data->dev_conf.rxmode.max_rx_pkt_len);
> +
> /* Setup RX queues */
> dev->rx_pkt_burst = ixgbe_recv_pkts;
> for (i = 0; i < dev->data->nb_rx_queues; i++) {
--
Ivan Boule
6WIND Development Engineer
(to other queues) by having some of the
> CPU processing devoted to this task. Can you verify this?
>
> Regards,
> - Michael.
>
>
> On Mon, Jan 6, 2014 at 10:21 AM, Ivan Boule <mailto:ivan.boule at 6wind.com>> wrote:
>
> On 12/31/2013 08:45 PM, Michael
uot;port config X rss reta (hash,queue)[,(hash,queue)]"
to configure RETA entries of a port X, with each couple (hash,queue)
contains the index of a RETA entry (between 0 and 127 included) and the
RX queue number (between 0 and 15) to be stored into that RETA entry.
Best regards
Ivan
--
Ivan Boule
6WIND Development Engineer
re(struct rte_eth_dev *dev)
> ixgbe_vmdq_rx_hw_configure(dev);
> break;
>
> + case ETH_MQ_RX_NONE:
> +/* if mq_mode is none, disable rss mode.*/
> default: ixgbe_rss_disable(dev);
> }
> else
Acked by Ivan Boule
--
Ivan Boule
6WIND Development Engineer
_mode is none, disable rss mode.*/
> default: ixgbe_rss_disable(dev);
> -}
> -else
> -ixgbe_rss_disable(dev);
> +}
> } else {
> switch (RTE_ETH_DEV_SRIOV(dev).active) {
> /*
Acked by Ivan Boule
--
Ivan Boule
6WIND Development Engineer
is zeroed thanks to its static declaration.
>
> Signed-off-by: Thomas Monjalon
> ---
> lib/librte_pmd_e1000/igb_rxtx.c | 14 ++
> lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 10 ++
> 2 files changed, 12 insertions(+), 12 deletions(-)
>
>
Acked-by: Ivan Boule
--
Ivan Boule
6WIND Development Engineer
econfiguring,
> but not at initial configuration.
>
> Move the FUNC_PTR_OR_ERR_RET check into the case of reconfiguration.
>
> Signed-off-by: Thomas Monjalon
>
Acked-by: Ivan Boule
--
Ivan Boule
6WIND Development Engineer
of the 4 XOFF/XON counters in the `testpmd` application.
Signed-off-by: Ivan Boule
---
app/test-pmd/config.c |8
app/test-pmd/testpmd.c | 10 ++
lib/librte_ether/rte_ethdev.h |4
lib/librte_pmd_e1000/em_ethdev.c|6 ++
lib
list
of supported PCI device identifiers in the file:
lib/librte_eal/common/include/rte_pci_dev_ids.h
Best regards,
Ivan
--
Ivan Boule
6WIND Development Engineer
65 matches
Mail list logo