Add a simple test script for the ng_atmpif node.
Submitted by: Vincent Jardin <vjardin@free.fr>
This commit is contained in:
parent
6ab88893be
commit
2e0b641e23
155
tools/regression/atm/harp/atm_udp.ng
Normal file
155
tools/regression/atm/harp/atm_udp.ng
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# $FreeBSD$
|
||||||
|
#
|
||||||
|
err() {
|
||||||
|
echo "$*" >&2
|
||||||
|
}
|
||||||
|
usage() {
|
||||||
|
err "Usage: `basename $0` atmindex loc_ip udp_port rem_ip udp_port [pref_iface]"
|
||||||
|
err " or: `basename $0` flush"
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
args=`getopt ed $*`
|
||||||
|
if [ $? != 0 ] ; then
|
||||||
|
usage 2
|
||||||
|
fi
|
||||||
|
set -- $args
|
||||||
|
|
||||||
|
debug_enable=0
|
||||||
|
|
||||||
|
for i
|
||||||
|
do
|
||||||
|
case "$i"
|
||||||
|
in
|
||||||
|
-e)
|
||||||
|
debug_enable=1
|
||||||
|
shift;;
|
||||||
|
-d)
|
||||||
|
debug_enable=-1
|
||||||
|
shift;;
|
||||||
|
--)
|
||||||
|
shift ; break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $# -lt 1 ] ; then
|
||||||
|
err "Missing arguments"
|
||||||
|
usage 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Handle debug flags
|
||||||
|
#
|
||||||
|
case ${debug_enable} in
|
||||||
|
|
||||||
|
1)
|
||||||
|
#
|
||||||
|
# Enable all the HARP debugging features
|
||||||
|
#
|
||||||
|
sysctl -w net.harp.atm.atm_debug=1
|
||||||
|
sysctl -w net.harp.atm.atm_dev_print=1
|
||||||
|
sysctl -w net.harp.atm.atm_print_data=1
|
||||||
|
sysctl -w net.harp.ip.ipatm_print=1
|
||||||
|
sysctl -w net.harp.spans.spanscls_print=1
|
||||||
|
sysctl -w net.harp.uni.uniarp_print=1
|
||||||
|
sysctl -w net.harp.uni.unisig_print_msg=2
|
||||||
|
;;
|
||||||
|
|
||||||
|
-1)
|
||||||
|
#
|
||||||
|
# Disable all the HARP debugging features
|
||||||
|
#
|
||||||
|
sysctl -w net.harp.atm.atm_debug=0
|
||||||
|
sysctl -w net.harp.atm.atm_dev_print=0
|
||||||
|
sysctl -w net.harp.atm.atm_print_data=0
|
||||||
|
sysctl -w net.harp.ip.ipatm_print=0
|
||||||
|
sysctl -w net.harp.spans.spanscls_print=0
|
||||||
|
sysctl -w net.harp.uni.uniarp_print=0
|
||||||
|
sysctl -w net.harp.uni.unisig_print_msg=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "${1}" = "flush" ] ; then
|
||||||
|
#
|
||||||
|
# Remove all atmpif nodes
|
||||||
|
#
|
||||||
|
for i in `ngctl list | grep atmpif | awk '{print $6}'` ; do
|
||||||
|
ngctl shutdown [$i]:
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ID=${1}
|
||||||
|
|
||||||
|
if [ $# -lt 5 -o $# -gt 6 ] ; then
|
||||||
|
err "wrong number of arguments"
|
||||||
|
usage 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
LOC_IP=${2}
|
||||||
|
LOC_UDP_PORT=${3}
|
||||||
|
REM_IP=${4}
|
||||||
|
REM_UDP_PORT=${5}
|
||||||
|
PREF_IFACE=${6}
|
||||||
|
|
||||||
|
if [ "${LOC_IP}" = "" -o "${LOC_UDP_PORT}" = "" -o \
|
||||||
|
"${REM_IP}" = "" -o "${REM_UDP_PORT}" = "" ] ; then
|
||||||
|
err "bad argument"
|
||||||
|
usage 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Default interface prefix: atmX
|
||||||
|
#
|
||||||
|
if [ "${PREF_IFACE}" = "" ] ; then
|
||||||
|
PREF_IFACE="atm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the ATM PIF (Physical Interface) vatmpifXX
|
||||||
|
#
|
||||||
|
ngctl -f - <<EOF
|
||||||
|
mkpeer atmpif dummy link
|
||||||
|
name .:dummy vatmpif${ID}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Attach a UDP socket to the ``link'' hook of the atm interface node
|
||||||
|
# using the ng_ksocket(8) node type.
|
||||||
|
#
|
||||||
|
echo ngctl mkpeer vatmpif${ID}: ksocket link inet/dgram/udp
|
||||||
|
ngctl -d mkpeer vatmpif${ID}: ksocket link inet/dgram/udp
|
||||||
|
|
||||||
|
# Enable HARP debugging of the API between the Netgraph node and the
|
||||||
|
# HARP stack
|
||||||
|
#
|
||||||
|
ngctl msg vatmpif${ID}: setconfig { debug=1 pcr=353207 macaddr=00:09:c0:00:00:cd }
|
||||||
|
|
||||||
|
# Bind the UDP socket to the local external IP address and port
|
||||||
|
#
|
||||||
|
echo ngctl msg vatmpif${ID}:link bind inet/${LOC_IP}:${LOC_UDP_PORT}
|
||||||
|
ngctl -d msg vatmpif${ID}:link bind inet/${LOC_IP}:${LOC_UDP_PORT}
|
||||||
|
|
||||||
|
# Connect the UDP socket to the peer's external IP address and port
|
||||||
|
#
|
||||||
|
echo ngctl msg vatmpif${ID}:link connect inet/${REM_IP}:${REM_UDP_PORT}
|
||||||
|
ngctl -d msg vatmpif${ID}:link connect inet/${REM_IP}:${REM_UDP_PORT}
|
||||||
|
|
||||||
|
# Display the atm interfaces:
|
||||||
|
#
|
||||||
|
atm show config
|
||||||
|
|
||||||
|
# Get the ATM device
|
||||||
|
#
|
||||||
|
ATMPIF=`atm show config | grep ^hva | tail -1 | cut -f 1 -d " "`
|
||||||
|
|
||||||
|
# Open a PVC
|
||||||
|
#
|
||||||
|
atm set netif ${ATMPIF} ${PREF_IFACE} 5
|
||||||
|
atm attach ${ATMPIF} sigpvc
|
||||||
|
ifconfig ${PREF_IFACE}0 1.${ID}.1.1/16
|
||||||
|
atm add pvc ${ATMPIF} ${ID} 40 AAL5 null IP ${PREF_IFACE}0 1.${ID}.2.2
|
||||||
|
atm show ipvcc
|
||||||
|
atm show vcc
|
||||||
|
atm show stats vcc
|
||||||
|
atm show stats interface ${ATMPIF}
|
13
tools/regression/atm/harp/memory_leak.sh
Normal file
13
tools/regression/atm/harp/memory_leak.sh
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# $FreeBSD$
|
||||||
|
#
|
||||||
|
# Perform memory leak test
|
||||||
|
#
|
||||||
|
|
||||||
|
while [ 1 ] ; do
|
||||||
|
./atm_udp.ng 1 127.0.0.1 5001 127.0.0.1 5002
|
||||||
|
sleep 2
|
||||||
|
./atm_udp.ng flush
|
||||||
|
vmstat -m
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user