[dpdk-dev] [PATCH v5 1/3] app/testpmd: add GENEVE parsing
Ophir Munk
ophirmu at nvidia.com
Wed Oct 7 16:52:47 CEST 2020
Hi Ferruh,
Please find comments inline.
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit at intel.com>
> Sent: Tuesday, October 6, 2020 5:31 PM
> To: Ophir Munk <ophirmu at nvidia.com>; dev at dpdk.org; Wenzhuo Lu
<...>
> >
> > uint16_t vxlan_gpe_udp_port = 4790;
> > +uint16_t geneve_udp_port = RTE_GENEVE_DEFAULT_PORT;
> >
>
> There is a testpmd command to configure the NIC for GENEVE port, "port
> config (port_id) udp_tunnel_port add|rm vxlan|geneve|vxlan-gpe
> (udp_port)"
>
> You are adding support to testpmd to parse the GENEVE packets, but I think
> these two commads should be consistent.
>
> What do you think "port config N add geneve X" update the
> 'geneve_udp_port=X"?
>
> <...>
>
It is not as simple as suggested.
The command "port config N add geneve X" can be repeated several times - adding another geneve port to the NIC Hardware/Firmware to recognize. As a result the NIC is configured with multiple geneve ports. On the other hand geneve_udp_port is a single variable - so whenever a new "port config" command is executed - we will override the last geneve port and forget all the precedent ones.
The port config command also has a "rm" option in addition to "add". So if we removed the last port - what will we assigned to geneve_udp_port? We need to have a small data base for managing geneve ports.
testpmd also has an option " --geneve-port=N". It should be synched with the "port config" command.
Another issue to consider is if there is a need for the suggested feature. I think the "port config" is mainly targeted for offloading. So the NIC will probably encap/decap a packet with geneve - leaving testpmd paring unneeded.
My point is that your suggestion requires an RFC before implementation.
>
> > @@ -865,9 +925,17 @@ pkt_burst_checksum_forward(struct fwd_stream
> *fs)
> > }
> > parse_vxlan(udp_hdr, &info,
> > m->packet_type);
> > - if (info.is_tunnel)
> > + if (info.is_tunnel) {
> > tx_ol_flags |=
> > PKT_TX_TUNNEL_VXLAN;
> > + goto tunnel_update;
> > + }
> > + parse_geneve(udp_hdr, &info);
> > + if (info.is_tunnel) {
> > + tx_ol_flags |=
> > + PKT_TX_TUNNEL_GENEVE;
> > + goto tunnel_update;
> > + }
>
> Can you please update the "csum parse-tunnel" documentation to mention
> "geneve"
> protocol?
Done in v6. I added other missing tunnel protocols (in alphabetical order) such as "gtp". Since it is more than geneve I added it to the 3rd (cleanup) commit.
More information about the dev
mailing list