blob: 406ba954fbae545d44fb7bf443a1670b8ceda1c4 [file] [log] [blame]
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +00001#! /bin/bash
2# This is not an autconf generated configure
3#
4INCLUDE=${1:-"/usr/include"}
5
6echo "# Generated config based on" $INCLUDE >Config
7
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +00008echo -n "TC xfrm "
9XFRM=$INCLUDE/linux/xfrm.h
10if [ ! -r $XFRM ];
11then
12 echo no
13else
14 echo "IP_CONFIG_XFRM:=y" >>Config
15 echo yes
16fi
17
18echo "TC schedulers"
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000019PKT_SCHED=$INCLUDE/linux/pkt_sched.h
20if [ ! -r $PKT_SCHED ];
21then
22 echo " can't find file" $PKT_SCHED
23 exit 1
24fi
25
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000026echo -n " netem "
osdl.net!shemminger2979d522004-07-30 20:24:59 +000027cat >/tmp/netemtest.c <<EOF
28#include <asm/types.h>
29#include <linux/pkt_sched.h>
30int main(int argc, char **argv) {
31 static struct tc_netem_qopt qopt;
32 exit(qopt.latency | qopt.limit | qopt.loss | qopt.gap | qopt.duplicate | qopt.jitter);
33}
34EOF
35gcc -I$INCLUDE -c /tmp/netemtest.c >/dev/null 2>&1
36if [ $? -eq 0 ]
37then
osdl.net!shemmingerc830d772004-07-02 17:47:53 +000038 echo "TC_CONFIG_NETEM:=y" >>Config
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000039 echo yes
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000040else
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000041 echo no
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000042fi
osdl.net!shemminger2979d522004-07-30 20:24:59 +000043rm -f /tmp/netemtest.c /tmp/netemtest.o
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000044
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000045echo -n " ATM "
osdl.net!shemmingerc830d772004-07-02 17:47:53 +000046cat >/tmp/atmtest.c <<EOF
47#include <atm.h>
48int main(int argc, char **argv) {
49 struct atm_qos qos;
50 (void) text2qos("aal5,ubr:sdu=9180,rx:none",&qos,0);
51 return 0;
52}
53EOF
osdl.net!shemminger2979d522004-07-30 20:24:59 +000054gcc -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1
osdl.net!shemmingerc830d772004-07-02 17:47:53 +000055if [ $? -eq 0 ]
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000056then
osdl.net!shemmingerc830d772004-07-02 17:47:53 +000057 echo "TC_CONFIG_ATM:=y" >>Config
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000058 echo yes
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000059else
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000060 echo no
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000061fi
osdl.net!shemminger2979d522004-07-30 20:24:59 +000062rm -f /tmp/atmtest.c /tmp/atmtest
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +000063
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000064echo -n " HTB "
osdl.net!shemminger3876b3c2004-07-30 20:50:38 +000065DEF_HTB=`grep '^#define HTB_TC_VER' tc/q_htb.c`
66cat >/tmp/htbtest.c <<EOF
67#include <stdio.h>
68#include <asm/types.h>
69#include <linux/pkt_sched.h>
70$DEF_HTB
71int main(int argc, char **argv) {
72 if (HTB_TC_VER >>16 != TC_HTB_PROTOVER) {
73 fprintf(stderr, "different kernel and TC HTB versions\n");
74 return 1;
75 }
76 return 0;
77}
78EOF
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000079gcc -I$INCLUDE -o /tmp/htbtest /tmp/htbtest.c >/dev/null 2>&1
osdl.net!shemminger3876b3c2004-07-30 20:50:38 +000080if [ $? -eq 0 -a /tmp/htbtest ]
81then
82 echo "TC_CONFIG_HTB:=y" >>Config
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000083 echo yes
osdl.net!shemminger3876b3c2004-07-30 20:50:38 +000084else
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000085 echo no
osdl.net!shemminger3876b3c2004-07-30 20:50:38 +000086fi
87rm -f /tmp/htbtest /tmp/htbtest.c
88
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +000089echo -n " HFSC "
90cat >/tmp/hfsctest.c <<EOF
91#include <asm/types.h>
92#include <linux/pkt_sched.h>
93int main(int argc, char **argv) {
94 static struct tc_hfsc_qopt qopt;
95
96 exit(qopt.defcls);
97}
98EOF
99gcc -I$INCLUDE -c /tmp/hfsctest.c >/dev/null 2>&1
100if [ $? -eq 0 ]
101then
102 echo "TC_CONFIG_HFSC:=y" >>Config
103 echo yes
104else
105 echo no
106fi
107rm -f /tmp/hfsctest.c /tmp/hfsctest.o
108
109
110
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000111# See if we know about TCP Vegas
112echo "SS"
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +0000113echo -n " TCP Vegas "
osdl.net!shemminger3876b3c2004-07-30 20:50:38 +0000114if grep -q TCPDIAG_VEGASINFO $INCLUDE/linux/tcp_diag.h >/dev/null 2>&1
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000115then
osdl.net!shemmingerc830d772004-07-02 17:47:53 +0000116 echo "SS_CONFIG_VEGAS:=y" >>Config
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +0000117 echo yes
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000118else
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +0000119 echo no
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000120fi
121
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +0000122echo -n " TCP DRS "
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000123if grep -q tcpi_rcv_space $INCLUDE/linux/tcp.h
124then
osdl.net!shemmingerc830d772004-07-02 17:47:53 +0000125 echo "SS_CONFIG_DRS:=y" >>Config
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +0000126 echo yes
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000127else
osdl.net!shemmingerb9cb1c92004-07-30 22:27:50 +0000128 echo no
osdl.net!shemminger449bf1f2004-06-25 21:14:22 +0000129fi
130
131