DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Saleh Alsouqi <salehals@mellanox.com>,
	"roszenrami@gmail.com" <roszenrami@gmail.com>
Cc: "wenzhuo.lu@intel.com" <wenzhuo.lu@intel.com>,
	"jingjing.wu@intel.com" <jingjing.wu@intel.com>,
	"bernard.iremonger@intel.com" <bernard.iremonger@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>, Ori Kam <orika@mellanox.com>,
	"stable@dpdk.org" <stable@dpdk.org>,
	"olivier.matz@6wind.com" <olivier.matz@6wind.com>
Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH v2] app/testpmd: fix mpls encap ipv4 version and ihl
Date: Tue, 16 Apr 2019 10:59:17 +0100	[thread overview]
Message-ID: <e1f1536f-ba30-e028-cdd8-e991a7b09e8f@intel.com> (raw)
Message-ID: <20190416095917.1D7Yj6z1HAkrX5TihJ9UiEXFLZt9B5r88K8O5zzaFKw@z> (raw)
In-Reply-To: <95f1467d-d93b-db22-2d60-85245fe30620@intel.com>

On 3/25/2019 1:30 PM, Ferruh Yigit wrote:
> On 3/25/2019 1:01 PM, Saleh Alsouqi wrote:
>> According to ietf rfc791 (see [1])
>>
>>     "The Version field indicates the format of the
>>     internet header."
>>
>>     "Internet Header Length (ihl) is the length of the
>>     internet header in 32 bit words, and thus points
>>     to the beginning of the data. Note that
>>     the minimum value for a correct header is 5."
>>
>> Having version and ihl set to 0 would result in a
>> corrupted/incorrect encapsulating packet for MPLS,
>> this commit sets these fields to 4 and 5 respectively
>> as a default value.
>>
>> [1] https://tools.ietf.org/html/rfc791
>>
>> Fixes: 3e77031be855 ("app/testpmd: add MPLSoGRE encapsulation")
>> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Saleh Alsouqi <salehals@mellanox.com>
>> ---
>> v2:
>>         - Include netinet/ip.h in librte_net/rte_ip.h
>>           to use existing definitions instead of defining
>>           our own.
>>
>>         - Move definitions from testpmd.h to librte_net/rte_ip.h
>> ---
>>  app/test-pmd/cmdline_flow.c | 6 ++++++
>>  lib/librte_net/rte_ip.h     | 5 +++++
>>  2 files changed, 11 insertions(+)
>>
>> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
>> index 36659a64a..f536307c9 100644
>> --- a/app/test-pmd/cmdline_flow.c
>> +++ b/app/test-pmd/cmdline_flow.c
>> @@ -3767,11 +3767,14 @@ parse_vc_action_mplsogre_encap(struct context *ctx, const struct token *token,
>>  			.src_addr = mplsogre_encap_conf.ipv4_src,
>>  			.dst_addr = mplsogre_encap_conf.ipv4_dst,
>>  			.next_proto_id = IPPROTO_GRE,
>> +			.version_ihl = IPV4_VHL_DEF,
>> +			.time_to_live = IPDEFTTL,
>>  		},
>>  	};
>>  	struct rte_flow_item_ipv6 ipv6 = {
>>  		.hdr =  {
>>  			.proto = IPPROTO_GRE,
>> +			.hop_limits = IPDEFTTL,
>>  		},
>>  	};
>>  	struct rte_flow_item_gre gre = {
>> @@ -3955,11 +3958,14 @@ parse_vc_action_mplsoudp_encap(struct context *ctx, const struct token *token,
>>  			.src_addr = mplsoudp_encap_conf.ipv4_src,
>>  			.dst_addr = mplsoudp_encap_conf.ipv4_dst,
>>  			.next_proto_id = IPPROTO_UDP,
>> +			.version_ihl = IPV4_VHL_DEF,
>> +			.time_to_live = IPDEFTTL,
>>  		},
>>  	};
>>  	struct rte_flow_item_ipv6 ipv6 = {
>>  		.hdr =  {
>>  			.proto = IPPROTO_UDP,
>> +			.hop_limits = IPDEFTTL,
>>  		},
>>  	};
>>  	struct rte_flow_item_udp udp = {
>> diff --git a/lib/librte_net/rte_ip.h b/lib/librte_net/rte_ip.h
>> index f9b909090..499a2f79c 100644
>> --- a/lib/librte_net/rte_ip.h
>> +++ b/lib/librte_net/rte_ip.h
>> @@ -17,6 +17,7 @@
>>  
>>  #include <stdint.h>
>>  #include <netinet/in.h>
>> +#include <netinet/ip.h>
>>  
>>  #include <rte_byteorder.h>
>>  #include <rte_mbuf.h>
>> @@ -89,6 +90,10 @@ struct ipv4_hdr {
>>  #define IS_IPV4_MCAST(x) \
>>  	((x) >= IPV4_MIN_MCAST && (x) <= IPV4_MAX_MCAST) /**< check if IPv4 address is multicast */
>>  
>> +/* IPv4 default fields values */
>> +#define IPV4_MIN_IHL    (0x5)
>> +#define IPV4_VHL_DEF    (IPVERSION | IPV4_MIN_IHL)
> 
> There are existing defines for this [1], since we have one in public header, can
> you please replace them too,
> perhaps in two patches, first one introduces this define and replaces old ones,
> second one fixes the mpls issue?
> 
> [1]
> $ git grep VHL | grep define
> app/test-pmd/csumonly.c:#define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)
> app/test-pmd/flowgen.c:#define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)
> app/test-pmd/txonly.c:#define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)
> app/test/packet_burst_generator.c:#define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)
> examples/tep_termination/vxlan_setup.c:#define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)

Let me get this as it is, and I will send another patch to update existing defines.

Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

  parent reply	other threads:[~2019-04-16  9:59 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-18 12:36 [dpdk-dev] [PATCH] " Saleh Alsouqi
2018-12-25 19:29 ` Rami Rosen
2019-01-08 14:38   ` Ferruh Yigit
2019-03-25 13:01 ` [dpdk-dev] [PATCH v2] " Saleh Alsouqi
2019-03-25 13:01   ` Saleh Alsouqi
2019-03-25 13:30   ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2019-03-25 13:30     ` Ferruh Yigit
2019-04-16  9:59     ` Ferruh Yigit [this message]
2019-04-16  9:59       ` Ferruh Yigit
2019-04-16 10:02       ` Ferruh Yigit
2019-04-16 10:02         ` Ferruh Yigit
2019-07-02 13:33         ` Yigit, Ferruh
2019-07-04  7:33 ` [dpdk-dev] [PATCH v3 0/2] define ipv4 ihl and vhl Saleh Alsouqi
2019-07-04  7:33   ` [dpdk-dev] [PATCH v3 1/2] librte_net/rte_ip: " Saleh Alsouqi
2019-07-04  7:33   ` [dpdk-dev] [PATCH v3 2/2] app/testpmd: fix mpls ipv4 encap fields Saleh Alsouqi
2019-07-04 16:19   ` [dpdk-dev] [dpdk-stable] [PATCH v3 0/2] define ipv4 ihl and vhl Ferruh Yigit

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=e1f1536f-ba30-e028-cdd8-e991a7b09e8f@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=olivier.matz@6wind.com \
    --cc=orika@mellanox.com \
    --cc=roszenrami@gmail.com \
    --cc=salehals@mellanox.com \
    --cc=stable@dpdk.org \
    --cc=wenzhuo.lu@intel.com \
    /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).