#! /bin/bash # This is not an autconf generated configure # INCLUDE=${1:-"/usr/include"} echo "# Generated config based on" $INCLUDE >Config echo -n "TC xfrm " XFRM=$INCLUDE/linux/xfrm.h if [ ! -r $XFRM ]; then echo no else echo "IP_CONFIG_XFRM:=y" >>Config echo yes fi echo "TC schedulers" PKT_SCHED=$INCLUDE/linux/pkt_sched.h if [ ! -r $PKT_SCHED ]; then echo " can't find file" $PKT_SCHED exit 1 fi echo -n " netem " cat >/tmp/netemtest.c < #include int main(int argc, char **argv) { static struct tc_netem_qopt qopt; exit(qopt.latency | qopt.limit | qopt.loss | qopt.gap | qopt.duplicate | qopt.jitter); } EOF gcc -I$INCLUDE -c /tmp/netemtest.c >/dev/null 2>&1 if [ $? -eq 0 ] then echo "TC_CONFIG_NETEM:=y" >>Config echo yes else echo no fi rm -f /tmp/netemtest.c /tmp/netemtest.o echo -n " ATM " cat >/tmp/atmtest.c < int main(int argc, char **argv) { struct atm_qos qos; (void) text2qos("aal5,ubr:sdu=9180,rx:none",&qos,0); return 0; } EOF gcc -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1 if [ $? -eq 0 ] then echo "TC_CONFIG_ATM:=y" >>Config echo yes else echo no fi rm -f /tmp/atmtest.c /tmp/atmtest echo -n " HTB " DEF_HTB=`grep '^#define HTB_TC_VER' tc/q_htb.c` cat >/tmp/htbtest.c < #include #include $DEF_HTB int main(int argc, char **argv) { if (HTB_TC_VER >>16 != TC_HTB_PROTOVER) { fprintf(stderr, "different kernel and TC HTB versions\n"); return 1; } return 0; } EOF gcc -I$INCLUDE -o /tmp/htbtest /tmp/htbtest.c >/dev/null 2>&1 if [ $? -eq 0 -a /tmp/htbtest ] then echo "TC_CONFIG_HTB:=y" >>Config echo yes else echo no fi rm -f /tmp/htbtest /tmp/htbtest.c echo -n " HFSC " cat >/tmp/hfsctest.c < #include int main(int argc, char **argv) { static struct tc_hfsc_qopt qopt; exit(qopt.defcls); } EOF gcc -I$INCLUDE -c /tmp/hfsctest.c >/dev/null 2>&1 if [ $? -eq 0 ] then echo "TC_CONFIG_HFSC:=y" >>Config echo yes else echo no fi rm -f /tmp/hfsctest.c /tmp/hfsctest.o # See if we know about TCP Vegas echo "SS" echo -n " TCP Vegas " if grep -q TCPDIAG_VEGASINFO $INCLUDE/linux/tcp_diag.h >/dev/null 2>&1 then echo "SS_CONFIG_VEGAS:=y" >>Config echo yes else echo no fi echo -n " TCP DRS " if grep -q tcpi_rcv_space $INCLUDE/linux/tcp.h then echo "SS_CONFIG_DRS:=y" >>Config echo yes else echo no fi