From: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: Jijiang Liu <jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v6 2/9] librte_ether:add VxLAN packet identification API in librte_ether
Date: Tue, 21 Oct 2014 12:51:01 +0200 [thread overview]
Message-ID: <3607443.z2coKxdkI7@xps13> (raw)
In-Reply-To: <1413881168-20239-3-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-21 16:46, Jijiang Liu:
> There are "some" destination UDP port numbers that have unque meaning.
> In terms of VxLAN, "IANA has assigned the value 4789 for the VXLAN UDP port, and this value
> SHOULD be used by default as the destination UDP port. Some early implementations of VXLAN
> have used other values for the destination port. To enable interoperability with these
> implementations, the destination port SHOULD be configurable."
>
> Add two APIs in librte_ether for supporting UDP tunneling port configuration on i40e.
> Currently, only VxLAN is implemented in this patch set.
Actually, there are 2 different things in this patch
- new tunnelling API
- VXLAN macros
Please split in 2 patches.
> int
> +rte_eth_dev_udp_tunnel_add(uint8_t port_id,
> + struct rte_eth_udp_tunnel *udp_tunnel,
> + uint8_t count)
> +{
> + uint8_t i;
> + struct rte_eth_dev *dev;
> + struct rte_eth_udp_tunnel *tunnel;
> +
> + if (port_id >= nb_ports) {
> + PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
> + return -ENODEV;
> + }
> +
> + if (udp_tunnel == NULL) {
> + PMD_DEBUG_TRACE("Invalid udp_tunnel parameter\n");
> + return -EINVAL;
> + }
> + tunnel = udp_tunnel;
> +
> + for (i = 0; i < count; i++, tunnel++) {
> + if (tunnel->prot_type >= RTE_TUNNEL_TYPE_MAX) {
> + PMD_DEBUG_TRACE("Invalid tunnel type\n");
> + return -EINVAL;
> + }
> + }
I'm not sure it's a good idea to provide a count parameter to iterate in a loop.
It's probably something that the application should do by itself.
> +
> + dev = &rte_eth_devices[port_id];
> + FUNC_PTR_OR_ERR_RET(*dev->dev_ops->udp_tunnel_add, -ENOTSUP);
> + return (*dev->dev_ops->udp_tunnel_add)(dev, udp_tunnel, count);
> +}
[...]
> +/**
> + * Tunneled type.
> + */
> +enum rte_eth_tunnel_type {
> + RTE_TUNNEL_TYPE_NONE = 0,
> + RTE_TUNNEL_TYPE_VXLAN,
> + RTE_TUNNEL_TYPE_GENEVE,
> + RTE_TUNNEL_TYPE_TEREDO,
> + RTE_TUNNEL_TYPE_NVGRE,
> + RTE_TUNNEL_TYPE_MAX,
> +};
This is moved later from rte_ethdev.h to rte_eth_ctrl.h.
Please choose where is the right location in this patch.
By the way, I think ethdev is the right location because it's not directly
related to ctrl API, right?
> struct rte_eth_conf {
> + enum rte_eth_tunnel_type tunnel_type;
> uint16_t link_speed;
> /**< ETH_LINK_SPEED_10[0|00|000], or 0 for autonegotation */
> uint16_t link_duplex;
Please don't add this field as the first. It's more logical to start
port configuration with link speed, duplex, etc.
Then please add a comment to explain how it should be used.
But I doubt we should configure a tunnel type for a whole port.
There's something weird here.
> +/* VXLAN protocol header */
This comment should be doxygen'ed.
> +struct vxlan_hdr {
> + uint32_t vx_flags; /**< VxLAN flag. */
> + uint32_t vx_vni; /**< VxLAN ID. */
> +} __attribute__((__packed__));
> +
[...]
> #define ETHER_TYPE_VLAN 0x8100 /**< IEEE 802.1Q VLAN tagging. */
> #define ETHER_TYPE_1588 0x88F7 /**< IEEE 802.1AS 1588 Precise Time Protocol. */
>
> +#define ETHER_VXLAN_HLEN (sizeof(struct udp_hdr) + sizeof(struct vxlan_hdr))
Please add a doxygen comment.
--
Thomas
next prev parent reply other threads:[~2014-10-21 10:51 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-21 8:45 [PATCH v6 0/9] Support VxLAN on Fortville Jijiang Liu
[not found] ` <1413881168-20239-1-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-21 8:46 ` [PATCH v6 1/9] librte_mbuf:the rte_mbuf structure changes Jijiang Liu
[not found] ` <1413881168-20239-2-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-21 10:26 ` Thomas Monjalon
2014-10-21 14:14 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D82548-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-22 8:45 ` Thomas Monjalon
2014-10-22 8:53 ` Liu, Jijiang
2014-10-23 2:23 ` Zhang, Helin
[not found] ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A7AA51C-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-12 13:26 ` Thomas Monjalon
2014-11-12 14:31 ` Zhang, Helin
[not found] ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A7BC2F2-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-12 15:23 ` Thomas Monjalon
2014-11-13 3:17 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D97183-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-13 8:53 ` Thomas Monjalon
2014-11-13 11:24 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D9A425-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-13 11:35 ` Thomas Monjalon
2014-10-21 8:46 ` [PATCH v6 2/9] librte_ether:add VxLAN packet identification API in librte_ether Jijiang Liu
[not found] ` <1413881168-20239-3-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-21 10:51 ` Thomas Monjalon [this message]
2014-10-21 13:48 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D82530-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-21 21:19 ` Thomas Monjalon
2014-10-22 1:46 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D827A2-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-22 9:52 ` Thomas Monjalon
2014-10-22 12:47 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D82A66-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-22 13:25 ` Thomas Monjalon
2014-10-22 5:21 ` Liu, Jijiang
2014-10-21 8:46 ` [PATCH v6 3/9] i40e:support VxLAN packet identification in librte_pmd_i40e Jijiang Liu
2014-10-21 8:46 ` [PATCH v6 4/9] app/test-pmd:test VxLAN packet identification Jijiang Liu
2014-10-21 8:46 ` [PATCH v6 5/9] librte_ether:add data structures of VxLAN filter Jijiang Liu
[not found] ` <1413881168-20239-6-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-21 15:13 ` Thomas Monjalon
2014-10-22 2:25 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D827DB-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-22 9:31 ` Thomas Monjalon
2014-10-22 11:03 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D829F1-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-23 9:06 ` Chilikin, Andrey
2014-10-22 6:45 ` Liu, Jijiang
[not found] ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01D828AA-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-22 9:25 ` Thomas Monjalon
2014-10-22 13:54 ` Liu, Jijiang
2014-10-21 8:46 ` [PATCH v6 6/9] i40e:implement API of VxLAN packet filter in librte_pmd_i40e Jijiang Liu
2014-10-21 8:46 ` [PATCH v6 7/9] app/testpmd:test VxLAN packet filter Jijiang Liu
2014-10-21 8:46 ` [PATCH v6 8/9] i40e:support VxLAN Tx checksum offload Jijiang Liu
2014-10-21 8:46 ` [PATCH v6 9/9] app/testpmd:test " Jijiang Liu
2014-10-21 14:54 ` [PATCH v6 0/9] Support VxLAN on Fortville Liu, Yong
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=3607443.z2coKxdkI7@xps13 \
--to=thomas.monjalon-pdr9zngts4eavxtiumwx3w@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.