Hi, Ori Kam A new v3 has been committed just now, thank you for your review work.
https://dpdk.org/dev/patchwork/patch/34742/ > -----Original Message----- > From: Ori Kam [mailto:or...@mellanox.com] > Sent: Tuesday, January 30, 2018 5:22 PM > To: Zhao1, Wei <wei.zh...@intel.com>; dev@dpdk.org > Cc: sta...@dpdk.org; Mcnamara, John <john.mcnam...@intel.com> > Subject: RE: [PATCH v2] doc: update flow filting document > > 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