* Re: created new q_disc, inserted module, tc tells me unknown qdisc [not found] <1707.128.2.140.234.1144719699.squirrel@128.2.140.234> @ 2006-04-11 18:16 ` Stephen Hemminger 2006-04-11 19:26 ` George P Nychis 0 siblings, 1 reply; 4+ messages in thread From: Stephen Hemminger @ 2006-04-11 18:16 UTC (permalink / raw) To: George P Nychis; +Cc: netdev, lartc On Mon, 10 Apr 2006 21:41:39 -0400 (EDT) "George P Nychis" <gnychis@cmu.edu> wrote: > Hi, > > I am trying to install a proprietary qdisc made for research, it is not publically released yet, however its been used several times so i know it works. > > The files included are: > q_xcp.c: > static int xcp_parse_opt() > static int xcp_print_opt() > static int xcp_print_xstats() > struct qdisc_util xcp_util = { "NULL", "xcp" ..... }; > > sch_xcp.c: > static int xcp_enqueue() > static int xcp_requeue() > static struct sk_buff * xcp_dequeue() > .... > .... > struct Qdisc_ops xcp_qdisc_ops ={ NULL,NULL,"xcp",.... }; > > printk(KERN_INFO "XCP qdisc module loaded.\n"); > return register_qdisc(&xcp_qdisc_ops); > > > So, i make everything successfully, it creates q_xcp.so and copies it to /usr/lib and sch_xcp.o which it copies to /lib/modules/... so then I "insmod sch_xcp" and i see in dmesg: > "XCP qdisc module loaded." > > I then try: > "tc qdisc add dev eth0 root xcp capacity 10Mbit limit 500" and get: > "Unknown qdisc "xcp", hence option "capacity" is unparsable" > > So then I read the INSTALL further to find some sort of solution and it mentions: > This again assumes "tc" version is 2.4.7. If your "tc" is a different > version, download the iproute2 source code, and edit Makefile to > point "TC_INCLUDE" to "-I..../iproute2/include -I..../iproute2/tc" > > So, i did that, and i recompiled the q_xcp.so: > lanthanum-ini src-1.0.1 # make q_xcp.so > cc -O2 -fPIC -I/var/tmp/portage/iproute2-2.6.11.20050310-r1/work/iproute2-2.6.11/include/ -I/var/tmp/portage/iproute2-2.6.11.20050310-r1/work/iproute2-2.6.11/tc_include -o q_xcp.o -c q_xcp.c > ld -shared -o q_xcp.so q_xcp.o > rm -f q_xcp.o > > But i still get the same error.... so then my very final last effort was to move q_xcp.c to my iproute2 source code tc/ directory and added this to the makefile: > TCMODULES += q_xcp.o > > Then I compiled tc, and i check tc to see if the xcp qdisc functions were loaded: > lanthanum-ini tc # nm tc | grep xcp > 080531ec t xcp_parse_opt > 080533e0 t xcp_print_opt > 08053426 t xcp_print_xstats > 08070cc0 D xcp_util > > And finally: > lanthanum-ini tc # ./tc qdisc add dev ath0 root xcp capacity 54Mbit limit 500 > Unknown qdisc "xcp", hence option "capacity" is unparsable > > > I have no clue :( I figured that putting the .so into /usr/lib would have been enough. Sorry for the long e-mail, I hope someone can help, and thank you for your time even if you don't know the solution but read this :) > > - George > The .so needs to go in /usr/lib/tc (assuming you are running relatively recent version of iproute2 tools). Read source to tc.c where it calls dlopen. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: created new q_disc, inserted module, tc tells me unknown qdisc 2006-04-11 18:16 ` created new q_disc, inserted module, tc tells me unknown qdisc Stephen Hemminger @ 2006-04-11 19:26 ` George P Nychis 2006-04-11 19:53 ` George P Nychis 2006-04-11 20:29 ` Tim Shepard 0 siblings, 2 replies; 4+ messages in thread From: George P Nychis @ 2006-04-11 19:26 UTC (permalink / raw) To: Stephen Hemminger; +Cc: netdev, lartc > On Mon, 10 Apr 2006 21:41:39 -0400 (EDT) "George P Nychis" > <gnychis@cmu.edu> wrote: > >> Hi, >> >> I am trying to install a proprietary qdisc made for research, it is not >> publically released yet, however its been used several times so i know >> it works. >> >> The files included are: q_xcp.c: static int xcp_parse_opt() static int >> xcp_print_opt() static int xcp_print_xstats() struct qdisc_util xcp_util >> = { "NULL", "xcp" ..... }; >> >> sch_xcp.c: static int xcp_enqueue() static int xcp_requeue() static struct >> sk_buff * xcp_dequeue() .... .... struct Qdisc_ops xcp_qdisc_ops ={ >> NULL,NULL,"xcp",.... }; >> >> printk(KERN_INFO "XCP qdisc module loaded.\n"); return >> register_qdisc(&xcp_qdisc_ops); >> >> >> So, i make everything successfully, it creates q_xcp.so and copies it >> to /usr/lib and sch_xcp.o which it copies to /lib/modules/... so then I >> "insmod sch_xcp" and i see in dmesg: "XCP qdisc module loaded." >> >> I then try: "tc qdisc add dev eth0 root xcp capacity 10Mbit limit 500" >> and get: "Unknown qdisc "xcp", hence option "capacity" is unparsable" >> >> So then I read the INSTALL further to find some sort of solution and it >> mentions: This again assumes "tc" version is 2.4.7. If your "tc" is a >> different version, download the iproute2 source code, and edit Makefile >> to point "TC_INCLUDE" to "-I..../iproute2/include -I..../iproute2/tc" >> >> So, i did that, and i recompiled the q_xcp.so: lanthanum-ini src-1.0.1 # >> make q_xcp.so cc -O2 -fPIC >> -I/var/tmp/portage/iproute2-2.6.11.20050310-r1/work/iproute2-2.6.11/inc >> lude/ >> -I/var/tmp/portage/iproute2-2.6.11.20050310-r1/work/iproute2-2.6.11/tc_ >> include -o q_xcp.o -c q_xcp.c ld -shared -o q_xcp.so q_xcp.o rm -f >> q_xcp.o >> >> But i still get the same error.... so then my very final last effort >> was to move q_xcp.c to my iproute2 source code tc/ directory and added >> this to the makefile: TCMODULES += q_xcp.o >> >> Then I compiled tc, and i check tc to see if the xcp qdisc functions >> were loaded: lanthanum-ini tc # nm tc | grep xcp 080531ec t xcp_parse_opt >> 080533e0 t xcp_print_opt 08053426 t xcp_print_xstats 08070cc0 D xcp_util >> >> >> And finally: lanthanum-ini tc # ./tc qdisc add dev ath0 root xcp >> capacity 54Mbit limit 500 Unknown qdisc "xcp", hence option "capacity" >> is unparsable >> >> >> I have no clue :( I figured that putting the .so into /usr/lib would >> have been enough. Sorry for the long e-mail, I hope someone can help, >> and thank you for your time even if you don't know the solution but >> read this :) >> >> - George >> > > The .so needs to go in /usr/lib/tc (assuming you are running relatively > recent version of iproute2 tools). > > Read source to tc.c where it calls dlopen. > > Still didn't seem to solve the problem :\ In my tc.c i have: snprintf(buf, sizeof(buf), "/usr/lib/tc/q_%s.so", str); Also: lanthanum-ini tc # ls /usr/lib/tc experimental.dist normal.dist pareto.dist paretonormal.dist q_netem.so q_xcp.so And finally: lanthanum-ini tc # tc qdisc add dev ath0 root xcp capacity 54Mbit limit 500 Unknown qdisc "xcp", hence option "capacity" is unparsable Maybe i should add debugging in tc.c and see if it sees the .so and fails to load it or something. Any other suggestions? Thanks for all the responses, George ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: created new q_disc, inserted module, tc tells me unknown qdisc 2006-04-11 19:26 ` George P Nychis @ 2006-04-11 19:53 ` George P Nychis 2006-04-11 20:29 ` Tim Shepard 1 sibling, 0 replies; 4+ messages in thread From: George P Nychis @ 2006-04-11 19:53 UTC (permalink / raw) To: George P Nychis; +Cc: netdev, lartc I am getting closer... I added debugging, and noticed that it looks for: snprintf(buf, sizeof(buf), "%s_qdisc_util", str); However in q_xcp.c it had: struct qdisc_util xcp_util = { so I changed that to xcp_qdisc_util, and now i run tc: lanthanum-ini tc # tc qdisc add dev ath0 root xcp capacity 54Mbit limit 100 Segmentation fault This happens on this line: q = dlsym(dlh, buf); Since this is very hard for people to help me without the source code, i did ask the author if it has been release publically and am waiting for a response. In the meantime, it seems as though maybe instead of trying to get this to work with a newer version of tc, i should install an old version of tc that the module was original made for. Though if anyone else has ideas let me know. Thanks for all the help - George >> On Mon, 10 Apr 2006 21:41:39 -0400 (EDT) "George P Nychis" >> <gnychis@cmu.edu> wrote: >> >>> Hi, >>> >>> I am trying to install a proprietary qdisc made for research, it is >>> not publically released yet, however its been used several times so i >>> know it works. >>> >>> The files included are: q_xcp.c: static int xcp_parse_opt() static >>> int xcp_print_opt() static int xcp_print_xstats() struct qdisc_util >>> xcp_util = { "NULL", "xcp" ..... }; >>> >>> sch_xcp.c: static int xcp_enqueue() static int xcp_requeue() static >>> struct sk_buff * xcp_dequeue() .... .... struct Qdisc_ops >>> xcp_qdisc_ops ={ NULL,NULL,"xcp",.... }; >>> >>> printk(KERN_INFO "XCP qdisc module loaded.\n"); return >>> register_qdisc(&xcp_qdisc_ops); >>> >>> >>> So, i make everything successfully, it creates q_xcp.so and copies it >>> to /usr/lib and sch_xcp.o which it copies to /lib/modules/... so >>> then I "insmod sch_xcp" and i see in dmesg: "XCP qdisc module loaded." >>> >>> >>> I then try: "tc qdisc add dev eth0 root xcp capacity 10Mbit limit >>> 500" and get: "Unknown qdisc "xcp", hence option "capacity" is >>> unparsable" >>> >>> So then I read the INSTALL further to find some sort of solution and >>> it mentions: This again assumes "tc" version is 2.4.7. If your "tc" >>> is a different version, download the iproute2 source code, and edit >>> Makefile to point "TC_INCLUDE" to "-I..../iproute2/include >>> -I..../iproute2/tc" >>> >>> So, i did that, and i recompiled the q_xcp.so: lanthanum-ini >>> src-1.0.1 # make q_xcp.so cc -O2 -fPIC >>> -I/var/tmp/portage/iproute2-2.6.11.20050310-r1/work/iproute2-2.6.11/i >>> nc lude/ >>> -I/var/tmp/portage/iproute2-2.6.11.20050310-r1/work/iproute2-2.6.11/t >>> c_ include -o q_xcp.o -c q_xcp.c ld -shared -o q_xcp.so q_xcp.o rm -f >>> q_xcp.o >>> >>> But i still get the same error.... so then my very final last effort >>> was to move q_xcp.c to my iproute2 source code tc/ directory and >>> added this to the makefile: TCMODULES += q_xcp.o >>> >>> Then I compiled tc, and i check tc to see if the xcp qdisc functions >>> were loaded: lanthanum-ini tc # nm tc | grep xcp 080531ec t >>> xcp_parse_opt 080533e0 t xcp_print_opt 08053426 t xcp_print_xstats >>> 08070cc0 D xcp_util >>> >>> >>> And finally: lanthanum-ini tc # ./tc qdisc add dev ath0 root xcp >>> capacity 54Mbit limit 500 Unknown qdisc "xcp", hence option >>> "capacity" is unparsable >>> >>> >>> I have no clue :( I figured that putting the .so into /usr/lib would >>> have been enough. Sorry for the long e-mail, I hope someone can >>> help, and thank you for your time even if you don't know the solution >>> but read this :) >>> >>> - George >>> >> >> The .so needs to go in /usr/lib/tc (assuming you are running relatively >> recent version of iproute2 tools). >> >> Read source to tc.c where it calls dlopen. >> >> > > Still didn't seem to solve the problem :\ > > In my tc.c i have: snprintf(buf, sizeof(buf), "/usr/lib/tc/q_%s.so", str); > > > Also: lanthanum-ini tc # ls /usr/lib/tc experimental.dist normal.dist > pareto.dist paretonormal.dist q_netem.so q_xcp.so > > And finally: lanthanum-ini tc # tc qdisc add dev ath0 root xcp capacity > 54Mbit limit 500 Unknown qdisc "xcp", hence option "capacity" is > unparsable > > Maybe i should add debugging in tc.c and see if it sees the .so and fails > to load it or something. > > Any other suggestions? > > Thanks for all the responses, George > > _______________________________________________ LARTC mailing list > LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc > > -- ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: created new q_disc, inserted module, tc tells me unknown qdisc 2006-04-11 19:26 ` George P Nychis 2006-04-11 19:53 ` George P Nychis @ 2006-04-11 20:29 ` Tim Shepard 1 sibling, 0 replies; 4+ messages in thread From: Tim Shepard @ 2006-04-11 20:29 UTC (permalink / raw) To: George P Nychis; +Cc: netdev, lartc > Maybe i should add debugging in tc.c and see if it sees the .so and fails to load it or something. Yes. I would do that next. Compile tc with -g and then run it under gdb and step through that part to see what happens. -Tim Shepard shep@alum.mit.edu ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-04-11 20:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1707.128.2.140.234.1144719699.squirrel@128.2.140.234>
2006-04-11 18:16 ` created new q_disc, inserted module, tc tells me unknown qdisc Stephen Hemminger
2006-04-11 19:26 ` George P Nychis
2006-04-11 19:53 ` George P Nychis
2006-04-11 20:29 ` Tim Shepard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).