DPDK patches and discussions
 help / color / mirror / Atom feed
From: Mauro Annarumma <mauroannarumma@hotmail.it>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Question on VMDq mode
Date: Thu, 12 Dec 2013 18:04:38 +0100	[thread overview]
Message-ID: <DUB111-W452E3DB046C6E62F32E52CB1DC0@phx.gbl> (raw)
In-Reply-To: <BLU0-SMTP179A3E5CD64761609B6542AB1D40@phx.gbl>

Hi,
last week I sent a question about VMDq and I did not get any reply. 
Today I'll be more generic rather than last time, and I hope someone will clarify my ideas.
Through the DPDK framework, is it possible to make a pre-filter based on some header parameter directly on the NIC (in addition to those on vlan id and vlan priority used in the example applications)?

I already tried to use these functions:

1) rte_eth_dev_mac_addr_add : I used it with the NIC configured in VMDq mode 

static const struct rte_eth_conf port_conf = {
    .rxmode = {
        .mq_mode        = ETH_MQ_RX_VMDQ_ONLY,
        .split_hdr_size = 0,
        .header_split   = 0, /**< Header Split disabled */
        .hw_ip_checksum = 1, /**< IP checksum offload disabled */
        .hw_vlan_filter = 0, /**< VLAN filtering disabled */
        .jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
            .hw_strip_crc   = 0,
    },

    .txmode = {
        .mq_mode = ETH_MQ_TX_NONE,
    },
    .rx_adv_conf = {
        .vmdq_rx_conf = {
            .nb_queue_pools = ETH_64_POOLS,
            .enable_default_pool = 1,
            .default_pool = 0,
        },
    },
};

When I use the function above, the NIC discards all the packets with MAC source address different from one of those I added with the function itself; moreover, I receive this packets only if I enable the default pool in the configuration phase (otherwise no packet is received).

2) rte_eth_dev_fdir_add_signature_filter: this time I used another configuration for the device, but I think I do some mistake (it is so bad do not having a good doc about this stuff) 

    .rxmode = {
        .mq_mode        = ETH_MQ_RX_NONE,
        .split_hdr_size = 0,
        .header_split   = 0, /**< Header Split disabled */
        .hw_ip_checksum = 1, /**< IP checksum offload disabled */
        .hw_vlan_filter = 0, /**< VLAN filtering disabled */
        .jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
        .hw_strip_crc   = 0,
    },

    .txmode = {
        .mq_mode = ETH_MQ_TX_NONE,
    },
    .fdir_conf = {
        .mode = RTE_FDIR_MODE_SIGNATURE ,
        .pballoc = RTE_FDIR_PBALLOC_64K ,
        .status = RTE_FDIR_NO_REPORT_STATUS ,
        .flexbytes_offset = 0,
        .drop_queue = 0,
    },

};

In this way, the device does not start, although it is a x540 (hence it should support the FDIR_MODE_SIGNATURE).

Regards,
 
    Mauro

> Date: Wed, 4 Dec 2013 19:28:39 +0100
> From: mauroannarumma@hotmail.it
> To: dev@dpdk.org
> Subject: [dpdk-dev] Question on VMDq mode
> 
> Hi,
> I'm trying to use the VMDq technology for pre-filter packets on the 
> NIC;unfortunately I found only two examples about this, and both express 
> conditions on the VLAN tag, while I need to select packets based on 
> their (source) MAC address.
> After looking to the API, I find out the function 
> *rte_eth_dev_mac_addr_add*, which requires the parameter *uint32_t pool* 
> (VMDq pool index to associate address with (if VMDq is enabled)).
> 
> My questions are:
> 1) Am I on the right way to achieve my goal?
> 2) How is it realized the mapping pools/queues?
> 
> Regards,
> 
>      Mauro
 		 	   		  

      reply	other threads:[~2013-12-12 17:03 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-04 18:28 Mauro
2013-12-12 17:04 ` Mauro Annarumma [this message]

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=DUB111-W452E3DB046C6E62F32E52CB1DC0@phx.gbl \
    --to=mauroannarumma@hotmail.it \
    --cc=dev@dpdk.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).