* Re: [LARTC] created new q_disc, inserted module,
2006-04-11 1:44 [LARTC] created new q_disc, inserted module, George P Nychis
@ 2006-04-11 4:27 ` Tim Shepard
2006-04-11 4:33 ` [LARTC] created new q_disc, inserted module, tc tells me unknown George Nychis
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Tim Shepard @ 2006-04-11 4:27 UTC (permalink / raw)
To: lartc
To debug this you'll probably want to have a look at the
get_qdisc_kind() routine in tc/tc.c in the iproute sources and
understand how it uses dlopen() to find the routines to parse the
arguments to the various different qdisc implementations..
I hope this helps.
Is your xcp-implementing qdisc code available anywhere yet? Are you
using the same packet format as the folks at ISI are using in their
FreeBSD implementation? (They wrote a internet draft describing the
XCP packet format a year or two ago.)
-Tim Shepard
shep@alum.mit.edu
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [LARTC] created new q_disc, inserted module, tc tells me unknown
2006-04-11 1:44 [LARTC] created new q_disc, inserted module, George P Nychis
2006-04-11 4:27 ` Tim Shepard
@ 2006-04-11 4:33 ` George Nychis
2006-04-12 1:10 ` gypsy
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: George Nychis @ 2006-04-11 4:33 UTC (permalink / raw)
To: lartc
Hey Tim,
I will take a look at that routine, it just seems no matter what I do I
cannot seem to find out why it determines it does not have xcp qdisc
support. I will look deeper into it.
I am not sure if it has been released to the public yet. I am using
Yongguang Zhang and Tom Henderson's Linux implementation. I am also not
sure it is the same packet formated as the ISI FreeBSD implementation.
Tom pre-released it to me for my research on the topic, I think I will
ask him if it is public yet, because if so I think I could find help a
lot easier :)
I will get back to you with what I find.
Thanks!
George
Tim Shepard wrote:
> To debug this you'll probably want to have a look at the
> get_qdisc_kind() routine in tc/tc.c in the iproute sources and
> understand how it uses dlopen() to find the routines to parse the
> arguments to the various different qdisc implementations..
>
> I hope this helps.
>
>
> Is your xcp-implementing qdisc code available anywhere yet? Are you
> using the same packet format as the folks at ISI are using in their
> FreeBSD implementation? (They wrote a internet draft describing the
> XCP packet format a year or two ago.)
>
> -Tim Shepard
> shep@alum.mit.edu
>
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [LARTC] created new q_disc, inserted module, tc tells me unknown
2006-04-11 1:44 [LARTC] created new q_disc, inserted module, George P Nychis
2006-04-11 4:27 ` Tim Shepard
2006-04-11 4:33 ` [LARTC] created new q_disc, inserted module, tc tells me unknown George Nychis
@ 2006-04-12 1:10 ` gypsy
2006-04-12 1:41 ` [LARTC] created new q_disc, inserted module, George P Nychis
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: gypsy @ 2006-04-12 1:10 UTC (permalink / raw)
To: lartc
George P Nychis 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
George,
Please show us
iproute/include/linux/pkt_sched.h
There shouldn't be anything there the author wishes to keep private.
--
gypsy
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [LARTC] created new q_disc, inserted module,
2006-04-11 1:44 [LARTC] created new q_disc, inserted module, George P Nychis
` (2 preceding siblings ...)
2006-04-12 1:10 ` gypsy
@ 2006-04-12 1:41 ` George P Nychis
2006-04-12 15:02 ` [LARTC] created new q_disc, inserted module, tc tells me unknown gypsy
2006-04-13 5:42 ` [LARTC] created new q_disc, inserted module, George P Nychis
5 siblings, 0 replies; 7+ messages in thread
From: George P Nychis @ 2006-04-12 1:41 UTC (permalink / raw)
To: lartc
> George P Nychis 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
>
> George,
>
> Please show us iproute/include/linux/pkt_sched.h
>
> There shouldn't be anything there the author wishes to keep private. --
> gypsy
>
>
They did not include the iproute source code that they used... they only included the q_xcp.c to create the q_xcp.so ... therefore my pkt_sched.h i am using is from this build: iproute2-2.6.11.20050310-r1
I can certainly post it if you need, just let me know
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [LARTC] created new q_disc, inserted module, tc tells me unknown
2006-04-11 1:44 [LARTC] created new q_disc, inserted module, George P Nychis
` (3 preceding siblings ...)
2006-04-12 1:41 ` [LARTC] created new q_disc, inserted module, George P Nychis
@ 2006-04-12 15:02 ` gypsy
2006-04-13 5:42 ` [LARTC] created new q_disc, inserted module, George P Nychis
5 siblings, 0 replies; 7+ messages in thread
From: gypsy @ 2006-04-12 15:02 UTC (permalink / raw)
To: lartc
George P Nychis wrote:
>
> > George P Nychis 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
> >
> > George,
> >
> > Please show us iproute/include/linux/pkt_sched.h
> >
> > There shouldn't be anything there the author wishes to keep private. --
> > gypsy
> >
> >
>
> They did not include the iproute source code that they used... they only included the q_xcp.c to create the q_xcp.so ... therefore my pkt_sched.h i am using is from this build: iproute2-2.6.11.20050310-r1
>
> I can certainly post it if you need, just let me know
George,
Then you probably need to revert to an iproute2 source that included
xcp. In pkt_sched.h you need a struct that defines the parameters xcp
can accept:
enum
{
TCA_XCP_PARM1,
TCA_XCP_PARM2,
TCA_XCP_PARM3,
};
and in ~/tc/Makefile you need TCMODULES += q_xcp.o
--
gypsy
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [LARTC] created new q_disc, inserted module,
2006-04-11 1:44 [LARTC] created new q_disc, inserted module, George P Nychis
` (4 preceding siblings ...)
2006-04-12 15:02 ` [LARTC] created new q_disc, inserted module, tc tells me unknown gypsy
@ 2006-04-13 5:42 ` George P Nychis
5 siblings, 0 replies; 7+ messages in thread
From: George P Nychis @ 2006-04-13 5:42 UTC (permalink / raw)
To: lartc
> George P Nychis wrote:
>>
>>> George P Nychis 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
>>>
>>> George,
>>>
>>> Please show us iproute/include/linux/pkt_sched.h
>>>
>>> There shouldn't be anything there the author wishes to keep private.
>>> -- gypsy
>>>
>>>
>>
>> They did not include the iproute source code that they used... they
>> only included the q_xcp.c to create the q_xcp.so ... therefore my
>> pkt_sched.h i am using is from this build: iproute2-2.6.11.20050310-r1
>>
>> I can certainly post it if you need, just let me know
>
> George,
>
> Then you probably need to revert to an iproute2 source that included xcp.
> In pkt_sched.h you need a struct that defines the parameters xcp can
> accept:
>
> enum { TCA_XCP_PARM1, TCA_XCP_PARM2, TCA_XCP_PARM3, };
>
> and in ~/tc/Makefile you need TCMODULES += q_xcp.o -- gypsy
>
>
I think what I'm most confused about this pkt_sched.h thing is that the code works with version 2.4.7 of iproute2 ... in 2.4.7 of iproute2 there is no pkt_sched.h anywhere to be found in the source code.
However in the newest version of iproute2 which I am trying to get this functionality to work in, there is a pkt_sched.h
My last observation, is that in q_xcp.h it includes pkt_sched_xcp.h which has:
struct tc_xcp_qopt
{
__u32 first_param;
__u32 second_param;
};
So I am assuming i need to add something like the enum thing to pkt_sched.h in the new iproute2 source... however what are the proper names I need to use in the enum? I don't expect you to know the names, however, what do i match them with?
Thanks!
George
--
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 7+ messages in thread