mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
OpenFlow-level flow-based tunneling support.
Adds tun_src and tun_dst match and set capabilities via new NXM fields NXM_NX_TUN_IPV4_SRC and NXM_NX_TUN_IPV4_DST. This allows management of large number of tunnels via the flow tables, without requiring the tunnels to be pre-configured. Flow-based tunnels can be configured with options remote_ip=flow and local_ip=flow. local_ip=flow requires remote_ip=flow. When set, the tunnel remote IP address and/or local IP address is set from the flow, instead of the tunnel configuration. Example: $ ovs-vsctl add-port br0 gre -- set Interface gre ofport_request=1 type=gre options:remote_ip=flow options:key=flow $ ovs-ofctl add-flow br0 "in_port=LOCAL actions=set_tunnel:1,set_field:192.168.0.1->tun_dst,output:1" $ ovs-ofctl add-flow br0 "in_port=1 tun_src=192.168.0.1 tun_id=1 actions=LOCAL" Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
committed by
Ben Pfaff
parent
500d243dad
commit
0ad90c845b
@@ -494,6 +494,8 @@ flow_get_metadata(const struct flow *flow, struct flow_metadata *fmd)
|
||||
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 20);
|
||||
|
||||
fmd->tun_id = flow->tunnel.tun_id;
|
||||
fmd->tun_src = flow->tunnel.ip_src;
|
||||
fmd->tun_dst = flow->tunnel.ip_dst;
|
||||
fmd->metadata = flow->metadata;
|
||||
memcpy(fmd->regs, flow->regs, sizeof fmd->regs);
|
||||
fmd->in_port = flow->in_port;
|
||||
|
Reference in New Issue
Block a user