# This is configuration for multiple hosts testing scenarios.
# Tests that involves multiple hosts should be run on host A from this topology:
# B[1]---|
#        +---[1]A[2]---[1]R[2]---[1]D
# C[1]---|
#
# CTRL_* are used to ssh into other hosts. (eg. `ssh $CTRL_B` gets you a shell on B)
# IP4_* (and IP6_* if needed) are used to send experiment packets (eg. `nfdc create udp4://$IP4_C1` creates a tunnel).
#
# suggested subnet mask:
# IPv4: /24
# IPv6: /64
#
CTRL_B=b.integ.ndn-routing.emulab.net
CTRL_C=c.integ.ndn-routing.emulab.net
CTRL_D=d.integ.ndn-routing.emulab.net
CTRL_R=r.integ.ndn-routing.emulab.net
IP4_A1=10.0.0.2
IP4_B1=10.0.0.1
IP4_C1=10.0.0.3
IP4_A2=10.1.0.1
IP4_R1=10.1.0.2
IP4_R2=10.2.0.1
IP4_D1=10.2.0.2
IP6_A1=fd8c:edca:0f3c:10f4::2
IP6_B1=fd8c:edca:0f3c:10f4::1
IP6_C1=fd8c:edca:0f3c:10f4::3
IP6_A2=fd8c:edca:0f3c:10f5::9
IP6_R1=fd8c:edca:0f3c:10f5::a
IP6_R2=fd8c:edca:0f3c:10f6::11
IP6_D1=fd8c:edca:0f3c:10f6::12

