Templetize ovs-config.sh and share it between bird and frr
This commit is contained in:
3
generate
3
generate
@ -250,7 +250,8 @@ def main():
|
|||||||
for node_id in range(ncount):
|
for node_id in range(ncount):
|
||||||
log.info("Generating for %s node %d" % (node_type, node_id))
|
log.info("Generating for %s node %d" % (node_type, node_id))
|
||||||
data["node"] = create_node(data["lab"], node_id, node_type)
|
data["node"] = create_node(data["lab"], node_id, node_type)
|
||||||
log.debug("node: %s" % data["node"])
|
data["overlay"] = args.overlay
|
||||||
|
log.debug(f"data: {data}")
|
||||||
|
|
||||||
# Assemble a dictionary of tpl=>fn
|
# Assemble a dictionary of tpl=>fn
|
||||||
overlay = data["overlays"][args.overlay]
|
overlay = data["overlays"][args.overlay]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# OVS configuration for the `bird` overlay
|
# OVS configuration for the `{{ overlay }}` overlay
|
||||||
|
|
||||||
LAB=${LAB:=0}
|
LAB=${LAB:=0}
|
||||||
BR=vpplan
|
BR=vpplan
|
@ -1,79 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# OVS configuration for the `frr` overlay
|
|
||||||
|
|
||||||
LAB=${LAB:=0}
|
|
||||||
BR=vpplan
|
|
||||||
for p in $(ovs-vsctl list-ifaces $BR); do
|
|
||||||
ovs-vsctl set port $p vlan_mode=access
|
|
||||||
done
|
|
||||||
|
|
||||||
# Uplink is VLAN 10
|
|
||||||
ovs-vsctl add port vpp${LAB}-0-0 tag 10
|
|
||||||
ovs-vsctl add port uplink tag 10
|
|
||||||
|
|
||||||
# Link vpp${LAB}-0 <-> vpp${LAB}-1 in VLAN 20
|
|
||||||
ovs-vsctl add port vpp${LAB}-0-1 tag 20
|
|
||||||
ovs-vsctl add port vpp${LAB}-1-0 tag 20
|
|
||||||
|
|
||||||
# Link vpp${LAB}-1 <-> vpp${LAB}-2 in VLAN 21
|
|
||||||
ovs-vsctl add port vpp${LAB}-1-1 tag 21
|
|
||||||
ovs-vsctl add port vpp${LAB}-2-0 tag 21
|
|
||||||
|
|
||||||
# Link vpp${LAB}-2 <-> vpp${LAB}-3 in VLAN 22
|
|
||||||
ovs-vsctl add port vpp${LAB}-2-1 tag 22
|
|
||||||
ovs-vsctl add port vpp${LAB}-3-0 tag 22
|
|
||||||
|
|
||||||
## Wire host${LAB}-0-[0123] to e2 of all VPP machines
|
|
||||||
ovs-vsctl set port vpp${LAB}-0-2 tag=30
|
|
||||||
ovs-vsctl set port host${LAB}-0-0 tag=30
|
|
||||||
ovs-vsctl set port vpp${LAB}-1-2 tag=31
|
|
||||||
ovs-vsctl set port host${LAB}-0-1 tag=31
|
|
||||||
ovs-vsctl set port vpp${LAB}-2-2 tag=32
|
|
||||||
ovs-vsctl set port host${LAB}-0-2 tag=32
|
|
||||||
ovs-vsctl set port vpp${LAB}-3-2 tag=33
|
|
||||||
ovs-vsctl set port host${LAB}-0-3 tag=33
|
|
||||||
|
|
||||||
## Wire host${LAB}-1-[0123] to e3 of all VPP machines
|
|
||||||
ovs-vsctl set port vpp${LAB}-0-3 tag=40
|
|
||||||
ovs-vsctl set port host${LAB}-1-0 tag=40
|
|
||||||
ovs-vsctl set port vpp${LAB}-1-3 tag=41
|
|
||||||
ovs-vsctl set port host${LAB}-1-1 tag=41
|
|
||||||
ovs-vsctl set port vpp${LAB}-2-3 tag=42
|
|
||||||
ovs-vsctl set port host${LAB}-1-2 tag=42
|
|
||||||
ovs-vsctl set port vpp${LAB}-3-3 tag=43
|
|
||||||
ovs-vsctl set port host${LAB}-1-3 tag=43
|
|
||||||
|
|
||||||
## Wire tap${LAB}-0-0 as 'rx' tap
|
|
||||||
MIRROR=mirror-rx
|
|
||||||
ovs-vsctl set port tap${LAB}-0-0 vlan_mode=native-tagged
|
|
||||||
[ ovs-vsctl list mirror $MIRROR >/dev/null 2>&1 ] || \
|
|
||||||
ovs-vsctl -- --id=@m get mirror $MIRROR -- remove bridge $BR mirrors @m
|
|
||||||
ovs-vsctl --id=@m create mirror name=$MIRROR \
|
|
||||||
-- --id=@p get port tap${LAB}-0-0 \
|
|
||||||
-- add bridge $BR mirrors @m \
|
|
||||||
-- set mirror $MIRROR output-port=@p \
|
|
||||||
-- set mirror $MIRROR select_dst_port=[] \
|
|
||||||
-- set mirror $MIRROR select_src_port=[]
|
|
||||||
for iface in $(ovs-vsctl list-ports $BR); do
|
|
||||||
[[ $iface == tap* ]] && continue
|
|
||||||
[[ $iface == uplink ]] && continue
|
|
||||||
ovs-vsctl add mirror $MIRROR select_dst_port $(ovs-vsctl get port $iface _uuid)
|
|
||||||
done
|
|
||||||
|
|
||||||
## Wire tap${LAB}-0-1 as 'tx' tap
|
|
||||||
MIRROR=mirror-tx
|
|
||||||
ovs-vsctl set port tap${LAB}-0-1 vlan_mode=native-tagged
|
|
||||||
[ ovs-vsctl list mirror $MIRROR >/dev/null 2>&1 ] || \
|
|
||||||
ovs-vsctl -- --id=@m get mirror $MIRROR -- remove bridge $BR mirrors @m
|
|
||||||
ovs-vsctl --id=@m create mirror name=$MIRROR \
|
|
||||||
-- --id=@p get port tap${LAB}-0-1 \
|
|
||||||
-- add bridge $BR mirrors @m \
|
|
||||||
-- set mirror $MIRROR output-port=@p \
|
|
||||||
-- set mirror $MIRROR select_dst_port=[] \
|
|
||||||
-- set mirror $MIRROR select_src_port=[]
|
|
||||||
for iface in $(ovs-vsctl list-ports $BR); do
|
|
||||||
[[ $iface == tap* ]] && continue
|
|
||||||
[[ $iface == uplink ]] && continue
|
|
||||||
ovs-vsctl add mirror $MIRROR select_src_port $(ovs-vsctl get port $iface _uuid)
|
|
||||||
done
|
|
1
overlays/frr/ovs-config.sh.j2
Symbolic link
1
overlays/frr/ovs-config.sh.j2
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../bird/ovs-config.sh.j2
|
Reference in New Issue
Block a user