Hi Paul et al,

> VPP's vxlan may be great for in memory transfers between containers, but
> it is hard on real network infrastructure, because it doesn't provide the
> signals to upstream routers for ECMP.
> 
>       /* UDP header, randomize src port on something, maybe? */
>       udp->src_port = clib_host_to_net_u16 (4789);

This is not completely accurate: VPP VxLAN tunnels comes in 2 flavors: L2 and 
L3.
The code you refer to is the L3 encapsulation code path and is used when doing 
L3 forwarding into a VxLAN tunnel. This is not the most common usecase for 
VxLAN as far as I know.
The common usecase (think: virtual switch with VMs) is L2 switching and in that 
case VxLAN encap is done through a virtual interface instead (because L2: we 
cannot rely on the fib), and supports ECMP (see src/vnet/vxlan/encap.c):
  u32 flow_hash0 = vnet_l2_compute_flow_hash (b0);
  [...]
  udp0->src_port = flow_hash0;

So, we do support ECMP but for L2 only. The reason it was not done for L3 is 
probably because nobody asked for it... Do you have a usecase where it would be 
useful?

Best
ben
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#18158): https://lists.fd.io/g/vpp-dev/message/18158
Mute This Topic: https://lists.fd.io/mt/78507623/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to