summaryrefslogtreecommitdiff
path: root/tests/ofproto-macros.at
diff options
context:
space:
mode:
authorJustin Pettit <jpettit@ovn.org>2019-04-06 09:02:05 -0700
committerJustin Pettit <jpettit@ovn.org>2019-05-23 13:42:04 -0700
commit70df182f03eb64983bd07056aacac6a06190a7ad (patch)
tree7161261c056d59b9cb02542a05babd29c772583b /tests/ofproto-macros.at
parentc4d0e4f22b4eef44f505902e9d91cd3bc2a330db (diff)
downloadopenvswitch-70df182f03eb64983bd07056aacac6a06190a7ad.tar.gz
ovn-macros: Break the OVN macros into their own file.
Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'tests/ofproto-macros.at')
-rw-r--r--tests/ofproto-macros.at177
1 files changed, 0 insertions, 177 deletions
diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at
index 2f33feabc..3763fed32 100644
--- a/tests/ofproto-macros.at
+++ b/tests/ofproto-macros.at
@@ -113,183 +113,6 @@ as() {
fi
}
-# OVN_CLEANUP_VSWITCH(sim)
-#
-# Gracefully terminate vswitch daemons in the
-# specified sandbox.
-m4_define([OVN_CLEANUP_VSWITCH],[
- as $1
- OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
- OVS_APP_EXIT_AND_WAIT([ovsdb-server])
-])
-
-# OVN_CLEANUP_SBOX(sbox)
-#
-# Gracefully terminate OVN daemons in the specified
-# sandbox instance. The sandbox name "vtep" is treated
-# as a special case, and is assumed to have ovn-controller-vtep
-# and ovs-vtep daemons running instead of ovn-controller.
-m4_define([OVN_CLEANUP_SBOX],[
- as $1
- if test "$1" = "vtep"; then
- OVS_APP_EXIT_AND_WAIT([ovn-controller-vtep])
- OVS_APP_EXIT_AND_WAIT([ovs-vtep])
- else
- OVS_APP_EXIT_AND_WAIT([ovn-controller])
- fi
- OVN_CLEANUP_VSWITCH([$1])
-])
-
-# OVN_CLEANUP(sim [, sim ...])
-#
-# Gracefully terminate all OVN daemons, including those in the
-# specified sandbox instances.
-m4_define([OVN_CLEANUP],[
- m4_foreach([sbox], [$@], [
- OVN_CLEANUP_SBOX([sbox])
- ])
- as ovn-sb
- OVS_APP_EXIT_AND_WAIT([ovsdb-server])
-
- as ovn-nb
- OVS_APP_EXIT_AND_WAIT([ovsdb-server])
-
- as northd
- OVS_APP_EXIT_AND_WAIT([ovn-northd])
-
- as northd-backup
- OVS_APP_EXIT_AND_WAIT([ovn-northd])
-
- OVN_CLEANUP_VSWITCH([main])
-])
-
-# ovn_init_db DATABASE
-#
-# Creates and initializes the given DATABASE (one of "ovn-sb" or "ovn-nb"),
-# starts its ovsdb-server instance, and sets the appropriate environment
-# variable (OVN_SB_DB or OVN_NB_DB) so that ovn-sbctl or ovn-nbctl uses the
-# database by default.
-#
-# Usually invoked from ovn_start.
-ovn_init_db () {
- echo "creating $1 database"
- local d=$ovs_base/$1
- mkdir "$d" || return 1
- : > "$d"/.$1.db.~lock~
- as $1 ovsdb-tool create "$d"/$1.db "$abs_top_srcdir"/ovn/$1.ovsschema
- as $1 start_daemon ovsdb-server --remote=punix:"$d"/$1.sock "$d"/$1.db
- local var=`echo $1_db | tr a-z- A-Z_`
- AS_VAR_SET([$var], [unix:$ovs_base/$1/$1.sock]); export $var
-}
-
-# ovn_start
-#
-# Creates and initializes ovn-sb and ovn-nb databases and starts their
-# ovsdb-server instance, sets appropriate environment variables so that
-# ovn-sbctl and ovn-nbctl use them by default, and starts ovn-northd running
-# against them.
-ovn_start () {
- ovn_init_db ovn-sb; ovn-sbctl init
- ovn_init_db ovn-nb; ovn-nbctl init
-
- echo "starting ovn-northd"
- mkdir "$ovs_base"/northd
- as northd start_daemon ovn-northd \
- --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock \
- --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock
-
- echo "starting backup ovn-northd"
- mkdir "$ovs_base"/northd-backup
- as northd-backup start_daemon ovn-northd \
- --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock \
- --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock
-}
-
-# Interconnection networks.
-#
-# When multiple sandboxed Open vSwitch instances exist, one will inevitably
-# want to connect them together. These commands allow for that. Conceptually,
-# an interconnection network is a switch for which these functions make it easy
-# to plug into other switches in other sandboxed Open vSwitch instances.
-# Interconnection networks are implemented as bridges in a switch named "main",
-# so to use interconnection networks please avoid working with that switch
-# directly.
-
-# net_add NETWORK
-#
-# Creates a new interconnection network named NETWORK.
-net_add () {
- test -d "$ovs_base"/main || sim_add main || return 1
- as main ovs-vsctl add-br "$1"
-}
-
-# net_attach NETWORK BRIDGE
-#
-# Adds a new port to BRIDGE in the default sandbox (as set with as()) and plugs
-# it into the NETWORK interconnection network. NETWORK must already have been
-# created by a previous invocation of net_add. The default sandbox must not be
-# "main".
-net_attach () {
- local net=$1 bridge=$2
-
- local port=${sandbox}_$bridge
- as main ovs-vsctl \
- -- add-port $net $port \
- -- set Interface $port options:pstream="punix:$ovs_base/main/$port.sock" options:rxq_pcap="$ovs_base/main/$port-rx.pcap" options:tx_pcap="$ovs_base/main/$port-tx.pcap" \
- || return 1
-
- ovs-vsctl \
- -- set Interface $bridge options:tx_pcap="$ovs_base/$sandbox/$bridge-tx.pcap" options:rxq_pcap="$ovs_base/$sandbox/$bridge-rx.pcap" \
- -- add-port $bridge ${bridge}_$net \
- -- set Interface ${bridge}_$net options:stream="unix:$ovs_base/main/$port.sock" options:rxq_pcap="$ovs_base/$sandbox/${bridge}_$net-rx.pcap" options:tx_pcap="$ovs_base/$sandbox/${bridge}_$net-tx.pcap" \
- || return 1
-}
-
-# ovn_attach NETWORK BRIDGE IP [MASKLEN]
-#
-# First, this command attaches BRIDGE to interconnection network NETWORK, just
-# like "net_attach NETWORK BRIDGE". Second, it configures (simulated) IP
-# address IP (with network mask length MASKLEN, which defaults to 24) on
-# BRIDGE. Finally, it configures the Open vSwitch database to work with OVN
-# and starts ovn-controller.
-ovn_attach() {
- local net=$1 bridge=$2 ip=$3 masklen=${4-24}
- net_attach $net $bridge || return 1
-
- mac=`ovs-vsctl get Interface $bridge mac_in_use | sed s/\"//g`
- arp_table="$arp_table $sandbox,$bridge,$ip,$mac"
- ovs-appctl netdev-dummy/ip4addr $bridge $ip/$masklen >/dev/null || return 1
- ovs-appctl ovs/route/add $ip/$masklen $bridge >/dev/null || return 1
- ovs-vsctl \
- -- set Open_vSwitch . external-ids:system-id=$sandbox \
- -- set Open_vSwitch . external-ids:ovn-remote=unix:$ovs_base/ovn-sb/ovn-sb.sock \
- -- set Open_vSwitch . external-ids:ovn-encap-type=geneve,vxlan \
- -- set Open_vSwitch . external-ids:ovn-encap-ip=$ip \
- -- add-br br-int \
- -- set bridge br-int fail-mode=secure other-config:disable-in-band=true \
- || return 1
- start_daemon ovn-controller || return 1
-}
-
-# OVN_POPULATE_ARP
-#
-# This pre-populates the ARP tables of all of the OVN instances that have been
-# started with ovn_attach(). That means that packets sent from one hypervisor
-# to another never get dropped or delayed by ARP resolution, which makes
-# testing easier.
-ovn_populate_arp__() {
- for e1 in $arp_table; do
- set `echo $e1 | sed 's/,/ /g'`; sb1=$1 br1=$2 ip=$3 mac=$4
- for e2 in $arp_table; do
- set `echo $e2 | sed 's/,/ /g'`; sb2=$1 br2=$2
- if test $sb1,$br1 != $sb2,$br2; then
- as $sb2 ovs-appctl tnl/neigh/set $br2 $ip $mac || return 1
- fi
- done
- done
-}
-m4_define([OVN_POPULATE_ARP], [AT_CHECK(ovn_populate_arp__, [0], [ignore])])
-
# Strips 'xid=0x1234' from ovs-ofctl output.
strip_xids () {
sed 's/ (xid=0x[[0-9a-fA-F]]*)//'