* [dpdk-stable] [PATCH v2] doc: update flow filting document [not found] <20180130073240.114479-1-wei.zhao1@intel.com> @ 2018-01-30 7:44 ` Wei Zhao 2018-01-30 9:22 ` Ori Kam 2018-01-31 2:12 ` [dpdk-stable] [PATCH v3] doc: update flow filtering document Wei Zhao 0 siblings, 2 replies; 10+ messages in thread From: Wei Zhao @ 2018-01-30 7:44 UTC (permalink / raw) To: dev; +Cc: orika, stable, john.mcnamara, Wei Zhao This patch will update example application of flow_filting document. It add Tx queues configuration related comment. Signed-off-by: Wei Zhao <wei.zhao1@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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH v2] doc: update flow filting document 2018-01-30 7:44 ` [dpdk-stable] [PATCH v2] doc: update flow filting document Wei Zhao @ 2018-01-30 9:22 ` Ori Kam 2018-01-31 2:22 ` Zhao1, Wei 2018-01-31 2:12 ` [dpdk-stable] [PATCH v3] doc: update flow filtering document Wei Zhao 1 sibling, 1 reply; 10+ messages in thread From: Ori Kam @ 2018-01-30 9:22 UTC (permalink / raw) To: Wei Zhao, dev; +Cc: stable, john.mcnamara Hi Wei, You have a typo in the patch subject and comment, It should be filtering Ori > -----Original Message----- > From: Wei Zhao [mailto:wei.zhao1@intel.com] > Sent: Tuesday, January 30, 2018 9:45 AM > To: dev@dpdk.org > Cc: Ori Kam <orika@mellanox.com>; stable@dpdk.org; > john.mcnamara@intel.com; Wei Zhao <wei.zhao1@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.zhao1@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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH v2] doc: update flow filting document 2018-01-30 9:22 ` Ori Kam @ 2018-01-31 2:22 ` Zhao1, Wei 0 siblings, 0 replies; 10+ messages in thread From: Zhao1, Wei @ 2018-01-31 2:22 UTC (permalink / raw) To: Ori Kam, dev; +Cc: stable, Mcnamara, John 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:orika@mellanox.com] > Sent: Tuesday, January 30, 2018 5:22 PM > To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org > Cc: stable@dpdk.org; Mcnamara, John <john.mcnamara@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.zhao1@intel.com] > > Sent: Tuesday, January 30, 2018 9:45 AM > > To: dev@dpdk.org > > Cc: Ori Kam <orika@mellanox.com>; stable@dpdk.org; > > john.mcnamara@intel.com; Wei Zhao <wei.zhao1@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.zhao1@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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-stable] [PATCH v3] doc: update flow filtering document 2018-01-30 7:44 ` [dpdk-stable] [PATCH v2] doc: update flow filting document Wei Zhao 2018-01-30 9:22 ` Ori Kam @ 2018-01-31 2:12 ` Wei Zhao 2018-01-31 6:50 ` [dpdk-stable] [dpdk-dev] " Zhang, Helin 2018-01-31 17:24 ` Ferruh Yigit 1 sibling, 2 replies; 10+ messages in thread From: Wei Zhao @ 2018-01-31 2:12 UTC (permalink / raw) To: dev; +Cc: john.mcnamara, stable, orika, Wei Zhao This patch will update example application of flow_filtering document. It add Tx queues configuration related comment. Signed-off-by: Wei Zhao <wei.zhao1@intel.com> Reviewed-by: Ori Kam <orika@mellanox.com> --- v2: -change code indentation style. v3: -fix a typo in the patch subject and comment. --- 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v3] doc: update flow filtering document 2018-01-31 2:12 ` [dpdk-stable] [PATCH v3] doc: update flow filtering document Wei Zhao @ 2018-01-31 6:50 ` Zhang, Helin 2018-01-31 17:24 ` Ferruh Yigit 1 sibling, 0 replies; 10+ messages in thread From: Zhang, Helin @ 2018-01-31 6:50 UTC (permalink / raw) To: Zhao1, Wei, dev; +Cc: Mcnamara, John, stable, orika, Zhao1, Wei > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wei Zhao > Sent: Wednesday, January 31, 2018 10:12 AM > To: dev@dpdk.org > Cc: Mcnamara, John; stable@dpdk.org; orika@mellanox.com; Zhao1, Wei > Subject: [dpdk-dev] [PATCH v3] doc: update flow filtering document > > This patch will update example application of flow_filtering document. > It add Tx queues configuration related comment. > > Signed-off-by: Wei Zhao <wei.zhao1@intel.com> > Reviewed-by: Ori Kam <orika@mellanox.com> Applied to dpdk-next-net-intel, thanks! /Helin ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v3] doc: update flow filtering document 2018-01-31 2:12 ` [dpdk-stable] [PATCH v3] doc: update flow filtering document Wei Zhao 2018-01-31 6:50 ` [dpdk-stable] [dpdk-dev] " Zhang, Helin @ 2018-01-31 17:24 ` Ferruh Yigit 2018-02-05 15:31 ` Mcnamara, John 1 sibling, 1 reply; 10+ messages in thread From: Ferruh Yigit @ 2018-01-31 17:24 UTC (permalink / raw) To: Wei Zhao, dev; +Cc: john.mcnamara, stable, orika On 1/31/2018 2:12 AM, Wei Zhao wrote: > This patch will update example application of flow_filtering document. > It add Tx queues configuration related comment. > > Signed-off-by: Wei Zhao <wei.zhao1@intel.com> > Reviewed-by: Ori Kam <orika@mellanox.com> Hi Wei, This patch is causing documentation warning: ...dpdk/doc/guides/sample_app_ug/flow_filtering.rst:161: WARNING: Could not lex literal_block as "c". Highlighting skipped. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v3] doc: update flow filtering document 2018-01-31 17:24 ` Ferruh Yigit @ 2018-02-05 15:31 ` Mcnamara, John 2018-02-06 14:18 ` Ferruh Yigit 2018-02-07 7:37 ` Zhao1, Wei 0 siblings, 2 replies; 10+ messages in thread From: Mcnamara, John @ 2018-02-05 15:31 UTC (permalink / raw) To: Yigit, Ferruh, Zhao1, Wei, dev; +Cc: stable, orika > -----Original Message----- > From: Yigit, Ferruh > Sent: Wednesday, January 31, 2018 5:24 PM > To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org > Cc: Mcnamara, John <john.mcnamara@intel.com>; stable@dpdk.org; > orika@mellanox.com > Subject: Re: [dpdk-dev] [PATCH v3] doc: update flow filtering document > > On 1/31/2018 2:12 AM, Wei Zhao wrote: > > This patch will update example application of flow_filtering document. > > It add Tx queues configuration related comment. > > > > Signed-off-by: Wei Zhao <wei.zhao1@intel.com> > > Reviewed-by: Ori Kam <orika@mellanox.com> > > Hi Wei, > > This patch is causing documentation warning: > ...dpdk/doc/guides/sample_app_ug/flow_filtering.rst:161: WARNING: Could > not lex literal_block as "c". Highlighting skipped. Hi, The reason for the warning was due to 2 instances like the following: + rte_exit(EXIT_FAILURE, + ":: Rx queue setup failed: err=%d, + port=%u\n", + ret, port_id); Here the error string extends over 2 lines so the error message will print out a newline and a lot of whitespace in the middle of the string. It should probably be something like the following: + rte_exit(EXIT_FAILURE, + ":: Rx queue setup failed: err=%d, " + "port=%u\n", + ret, port_id); or just: + rte_exit(EXIT_FAILURE, + ":: Rx queue setup failed: err=%d, port=%u\n", + ret, port_id); We can fix the code in the doc but you should probably fix this in the code as well. John ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v3] doc: update flow filtering document 2018-02-05 15:31 ` Mcnamara, John @ 2018-02-06 14:18 ` Ferruh Yigit 2018-02-07 8:07 ` Zhao1, Wei 2018-02-07 7:37 ` Zhao1, Wei 1 sibling, 1 reply; 10+ messages in thread From: Ferruh Yigit @ 2018-02-06 14:18 UTC (permalink / raw) To: Mcnamara, John, Zhao1, Wei, dev; +Cc: stable, orika On 2/5/2018 3:31 PM, Mcnamara, John wrote: > >> -----Original Message----- >> From: Yigit, Ferruh >> Sent: Wednesday, January 31, 2018 5:24 PM >> To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org >> Cc: Mcnamara, John <john.mcnamara@intel.com>; stable@dpdk.org; >> orika@mellanox.com >> Subject: Re: [dpdk-dev] [PATCH v3] doc: update flow filtering document >> >> On 1/31/2018 2:12 AM, Wei Zhao wrote: >>> This patch will update example application of flow_filtering document. >>> It add Tx queues configuration related comment. >>> >>> Signed-off-by: Wei Zhao <wei.zhao1@intel.com> >>> Reviewed-by: Ori Kam <orika@mellanox.com> >> >> Hi Wei, >> >> This patch is causing documentation warning: >> ...dpdk/doc/guides/sample_app_ug/flow_filtering.rst:161: WARNING: Could >> not lex literal_block as "c". Highlighting skipped. > > Hi, > > The reason for the warning was due to 2 instances like the following: > > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, > + port=%u\n", > + ret, port_id); > > > Here the error string extends over 2 lines so the error message will print out a newline and a lot of whitespace in the middle of the string. It should probably > be something like the following: > > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, " > + "port=%u\n", > + ret, port_id); > > or just: > > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, port=%u\n", > + ret, port_id); Thanks for clarifying this John. Patch pulled from next-net-intel to next-net and suggested fix applied on next-net. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v3] doc: update flow filtering document 2018-02-06 14:18 ` Ferruh Yigit @ 2018-02-07 8:07 ` Zhao1, Wei 0 siblings, 0 replies; 10+ messages in thread From: Zhao1, Wei @ 2018-02-07 8:07 UTC (permalink / raw) To: Yigit, Ferruh, Mcnamara, John, dev; +Cc: stable, orika, Zhang, Helin Hi, Ferruh > -----Original Message----- > From: Yigit, Ferruh > Sent: Tuesday, February 6, 2018 10:19 PM > To: Mcnamara, John <john.mcnamara@intel.com>; Zhao1, Wei > <wei.zhao1@intel.com>; dev@dpdk.org > Cc: stable@dpdk.org; orika@mellanox.com > Subject: Re: [dpdk-dev] [PATCH v3] doc: update flow filtering document > > On 2/5/2018 3:31 PM, Mcnamara, John wrote: > > > >> -----Original Message----- > >> From: Yigit, Ferruh > >> Sent: Wednesday, January 31, 2018 5:24 PM > >> To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org > >> Cc: Mcnamara, John <john.mcnamara@intel.com>; stable@dpdk.org; > >> orika@mellanox.com > >> Subject: Re: [dpdk-dev] [PATCH v3] doc: update flow filtering > >> document > >> > >> On 1/31/2018 2:12 AM, Wei Zhao wrote: > >>> This patch will update example application of flow_filtering document. > >>> It add Tx queues configuration related comment. > >>> > >>> Signed-off-by: Wei Zhao <wei.zhao1@intel.com> > >>> Reviewed-by: Ori Kam <orika@mellanox.com> > >> > >> Hi Wei, > >> > >> This patch is causing documentation warning: > >> ...dpdk/doc/guides/sample_app_ug/flow_filtering.rst:161: WARNING: > >> Could not lex literal_block as "c". Highlighting skipped. > > > > Hi, > > > > The reason for the warning was due to 2 instances like the following: > > > > + rte_exit(EXIT_FAILURE, > > + ":: Rx queue setup failed: err=%d, > > + port=%u\n", > > + ret, port_id); > > > > > > Here the error string extends over 2 lines so the error message will > > print out a newline and a lot of whitespace in the middle of the string. It > should probably be something like the following: > > > > + rte_exit(EXIT_FAILURE, > > + ":: Rx queue setup failed: err=%d, " > > + "port=%u\n", > > + ret, port_id); > > > > or just: > > > > + rte_exit(EXIT_FAILURE, > > + ":: Rx queue setup failed: err=%d, port=%u\n", > > + ret, port_id); > > Thanks for clarifying this John. > > Patch pulled from next-net-intel to next-net and suggested fix applied on > next-net. Code in next-net-intel has been fixed for this issue, but code in v3 has not. So, the code you pull from next-net-intel has been changed to rte_exit(EXIT_FAILURE, ":: Rx queue setup failed: err=%d, port=%u\n", ret, port_id); you can have a double check, maybe it do not need fix patch. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v3] doc: update flow filtering document 2018-02-05 15:31 ` Mcnamara, John 2018-02-06 14:18 ` Ferruh Yigit @ 2018-02-07 7:37 ` Zhao1, Wei 1 sibling, 0 replies; 10+ messages in thread From: Zhao1, Wei @ 2018-02-07 7:37 UTC (permalink / raw) To: Mcnamara, John, Yigit, Ferruh, dev; +Cc: stable, orika Ok, I will check that. Thanks. > -----Original Message----- > From: Mcnamara, John > Sent: Monday, February 5, 2018 11:31 PM > To: Yigit, Ferruh <ferruh.yigit@intel.com>; Zhao1, Wei > <wei.zhao1@intel.com>; dev@dpdk.org > Cc: stable@dpdk.org; orika@mellanox.com > Subject: RE: [dpdk-dev] [PATCH v3] doc: update flow filtering document > > > > -----Original Message----- > > From: Yigit, Ferruh > > Sent: Wednesday, January 31, 2018 5:24 PM > > To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org > > Cc: Mcnamara, John <john.mcnamara@intel.com>; stable@dpdk.org; > > orika@mellanox.com > > Subject: Re: [dpdk-dev] [PATCH v3] doc: update flow filtering document > > > > On 1/31/2018 2:12 AM, Wei Zhao wrote: > > > This patch will update example application of flow_filtering document. > > > It add Tx queues configuration related comment. > > > > > > Signed-off-by: Wei Zhao <wei.zhao1@intel.com> > > > Reviewed-by: Ori Kam <orika@mellanox.com> > > > > Hi Wei, > > > > This patch is causing documentation warning: > > ...dpdk/doc/guides/sample_app_ug/flow_filtering.rst:161: WARNING: > > Could not lex literal_block as "c". Highlighting skipped. > > Hi, > > The reason for the warning was due to 2 instances like the following: > > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, > + port=%u\n", > + ret, port_id); > > > Here the error string extends over 2 lines so the error message will print out > a newline and a lot of whitespace in the middle of the string. It should > probably be something like the following: > > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, " > + "port=%u\n", > + ret, port_id); > > or just: > > + rte_exit(EXIT_FAILURE, > + ":: Rx queue setup failed: err=%d, port=%u\n", > + ret, port_id); > > We can fix the code in the doc but you should probably fix this in the code as > well. > > John ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-02-07 8:08 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20180130073240.114479-1-wei.zhao1@intel.com> 2018-01-30 7:44 ` [dpdk-stable] [PATCH v2] doc: update flow filting document Wei Zhao 2018-01-30 9:22 ` Ori Kam 2018-01-31 2:22 ` Zhao1, Wei 2018-01-31 2:12 ` [dpdk-stable] [PATCH v3] doc: update flow filtering document Wei Zhao 2018-01-31 6:50 ` [dpdk-stable] [dpdk-dev] " Zhang, Helin 2018-01-31 17:24 ` Ferruh Yigit 2018-02-05 15:31 ` Mcnamara, John 2018-02-06 14:18 ` Ferruh Yigit 2018-02-07 8:07 ` Zhao1, Wei 2018-02-07 7:37 ` Zhao1, Wei
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).