Closed jshen28 closed 2 years ago
set()
action updates some of the packet headers or packet metadata. In your case it updates the packet tunnel metadata before sending packet to the tunnel for encapsulation. I'm guessing that port number 3
is a tunnel device in your case, but you may confirm by adding --names
to your dpctl/dump-flows
command, or by comparing the number with the output of dpctl/show
command.
thank you for reply. but it looks like ovs-appctl dpctl/dump-flows
does not accept --names
? besides, is 36
another vxlan tunnel device? what does the following push_vlan do? thank you.
ovs-appctl dpctl/dump-flows --names
should work starting from OVS 2.9.
36
is unlikely to be another tunnel, unless you have 2 equal tunnels; and that doesn't make much sense.
push_vlan
pushes vlan, i.e. adds a vlan header to the packet.
thank you append --names
to the end works! by the way, does set(tunnel(tun_id=0x2,src=192.168.4.13,dst=192.168.4.12,ttl=64,tp_dst=4792,flags(df|key))),3,36
means tunnelled traffic will go to device 3
and normal vlan traffic will go to device 36
?
set(tunnel(...))
only updates the tunnel metadata, actual encapsulation is performed by the tunnel port 3
after the output. So, yes, original unmodified packet (without a tunnel header) will be sent to port 36
. This packet doesn't have a vlan header though (eth type is 0x0800), vlan will be pushed later
thank you!
Hello,
I am sorry if this is not the place to ask a question.. I am trying to investigate a performance issue and uses
ovs-appctl dpctl/dump-flows
to inspect datapaths. this commands yields the following outputI would like to ask what does actions:set mean? thank you