Hi Wei, You have a typo in the patch subject and comment, It should be filtering
Ori > -----Original Message----- > From: Wei Zhao [mailto:wei.zh...@intel.com] > Sent: Tuesday, January 30, 2018 9:45 AM > To: dev@dpdk.org > Cc: Ori Kam <or...@mellanox.com>; sta...@dpdk.org; > john.mcnam...@intel.com; Wei Zhao <wei.zh...@intel.com> > Subject: [PATCH v2] doc: update flow filting document > > This patch will update example application of flow_filting document. > It add Tx queues configuration related comment. > > Signed-off-by: Wei Zhao <wei.zh...@intel.com> > > --- > > v2: > -change code indentation style. > --- > doc/guides/sample_app_ug/flow_filtering.rst | 108 ++++++++++++++++++- > --------- > 1 file changed, 72 insertions(+), 36 deletions(-) > > diff --git a/doc/guides/sample_app_ug/flow_filtering.rst > b/doc/guides/sample_app_ug/flow_filtering.rst > index 725dcb4..b4a1dd7 100644 > --- a/doc/guides/sample_app_ug/flow_filtering.rst > +++ b/doc/guides/sample_app_ug/flow_filtering.rst > @@ -167,44 +167,65 @@ application is shown below: > struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - /**< Header Split disabled */ > - .header_split = 0, > - /**< IP checksum offload disabled */ > - .hw_ip_checksum = 0, > - /**< VLAN filtering disabled */ > - .hw_vlan_filter = 0, > - /**< Jumbo Frame Support disabled */ > - .jumbo_frame = 0, > - /**< CRC stripped by hardware */ > - .hw_strip_crc = 1, > + .ignore_offload_bitfield = 1, > + .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > + }, > + .txmode = { > + .offloads = > + DEV_TX_OFFLOAD_VLAN_INSERT | > + DEV_TX_OFFLOAD_IPV4_CKSUM | > + DEV_TX_OFFLOAD_UDP_CKSUM | > + DEV_TX_OFFLOAD_TCP_CKSUM | > + DEV_TX_OFFLOAD_SCTP_CKSUM | > + DEV_TX_OFFLOAD_TCP_TSO, > }, > }; > + struct rte_eth_txconf txq_conf; > + struct rte_eth_rxconf rxq_conf; > + struct rte_eth_dev_info dev_info; > > printf(":: initializing port: %d\n", port_id); > ret = rte_eth_dev_configure(port_id, > - nr_queues, nr_queues, &port_conf); > + nr_queues, nr_queues, &port_conf); > if (ret < 0) { > rte_exit(EXIT_FAILURE, > ":: cannot configure device: err=%d, port=%u\n", > ret, port_id); > } > > + rte_eth_dev_info_get(port_id, &dev_info); > + rxq_conf = dev_info.default_rxconf; > + rxq_conf.offloads = port_conf.rxmode.offloads; > /* only set Rx queues: something we care only so far */ > for (i = 0; i < nr_queues; i++) { > ret = rte_eth_rx_queue_setup(port_id, i, 512, > - rte_eth_dev_socket_id(port_id), > - NULL, > - mbuf_pool); > + rte_eth_dev_socket_id(port_id), > + &rxq_conf, > + mbuf_pool); > if (ret < 0) { > - rte_exit(EXIT_FAILURE, > - ":: Rx queue setup failed: err=%d, port=%u\n", > - ret, port_id); > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, > + port=%u\n", > + ret, port_id); > } > } > > + txq_conf = dev_info.default_txconf; > + txq_conf.offloads = port_conf.txmode.offloads; > > - rte_eth_promiscuous_enable(port_id); > + for (i = 0; i < nr_queues; i++) { > + ret = rte_eth_tx_queue_setup(port_id, i, 512, > + rte_eth_dev_socket_id(port_id), > + &txq_conf); > + if (ret < 0) { > + rte_exit(EXIT_FAILURE, > + ":: Tx queue setup failed: err=%d, > + port=%u\n", > + ret, port_id); > + } > + } > > + rte_eth_promiscuous_enable(port_id); > ret = rte_eth_dev_start(port_id); > if (ret < 0) { > rte_exit(EXIT_FAILURE, @@ -223,20 +244,21 @@ The Ethernet > port > is configured with default settings using the .. code-block:: c > > struct rte_eth_conf port_conf = { > - .rxmode = { > - .split_hdr_size = 0, > - /**< Header Split disabled */ > - .header_split = 0, > - /**< IP checksum offload disabled */ > - .hw_ip_checksum = 0, > - /**< VLAN filtering disabled */ > - .hw_vlan_filter = 0, > - /**< Jumbo Frame Support disabled */ > - .jumbo_frame = 0, > - /**< CRC stripped by hardware */ > - .hw_strip_crc = 1, > - }, > - }; > + .rxmode = { > + .split_hdr_size = 0, > + .ignore_offload_bitfield = 1, > + .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > + }, > + .txmode = { > + .offloads = > + DEV_TX_OFFLOAD_VLAN_INSERT | > + DEV_TX_OFFLOAD_IPV4_CKSUM | > + DEV_TX_OFFLOAD_UDP_CKSUM | > + DEV_TX_OFFLOAD_TCP_CKSUM | > + DEV_TX_OFFLOAD_SCTP_CKSUM | > + DEV_TX_OFFLOAD_TCP_TSO, > + }, > + }; > > ret = rte_eth_dev_configure(port_id, nr_queues, nr_queues, > &port_conf); > if (ret < 0) { > @@ -244,23 +266,37 @@ The Ethernet port is configured with default > settings using the > ":: cannot configure device: err=%d, port=%u\n", > ret, port_id); > } > + rte_eth_dev_info_get(port_id, &dev_info); > + rxq_conf = dev_info.default_rxconf; > + rxq_conf.offloads = port_conf.rxmode.offloads; > > -For this example we are configuring number of rx queues that are > connected to -a single port. > +For this example we are configuring number of rx and tx queues that are > +connected to a single port. > > .. code-block:: c > > for (i = 0; i < nr_queues; i++) { > ret = rte_eth_rx_queue_setup(port_id, i, 512, > rte_eth_dev_socket_id(port_id), > - NULL, > + &rxq_conf, > mbuf_pool); > if (ret < 0) { > rte_exit(EXIT_FAILURE, > ":: Rx queue setup failed: err=%d, port=%u\n", > ret, port_id); > } > - } > + } > + > + for (i = 0; i < nr_queues; i++) { > + ret = rte_eth_tx_queue_setup(port_id, i, 512, > + rte_eth_dev_socket_id(port_id), > + &txq_conf); > + if (ret < 0) { > + rte_exit(EXIT_FAILURE, > + ":: Tx queue setup failed: err=%d, port=%u\n", > + ret, port_id); > + } > + } > > In the next step we create and apply the flow rule. which is to send packets > with destination ip equals to 192.168.1.1 to queue number 1. The detail > -- > 2.9.3