dear holger, dear harald,
don't worry about little communication problems. the difference between being offensive and being contructive is only determined by the sound of voice, i think. we can't hear the "tone" in emails, so we try to imagine the tone when we read mails. so your constructive arguments can be easily understand wrong.
let's get back to the patches. first, i decided to use one big patch, because the application interface requires almost all other parts to work. what i can do is to provide single patches that will work stand-allone, but some are dependant of earlier patches.
harald already did a list of parts in it's order:
* timer rename throughout the existing code * llist header changes (why were they made? c++?) * the transmit delay timer * introduction of trau interface * bsc_select_main(polling) * paging extension with cbfn BTS pointer * the actual MNCC interface * installation of libbsc (this should be last, since before the other changes it is of no use)
i will start this week to apply the changes to the latest SVN snapshot, one by one. i will test it by calling from one mobile station to another station. (i think that is enough.) i will create a diff and announce it on the mailing list. (i can also put it on home.eversberg.eu or on the wiki, if you whish). after that i will continue with the next step, test it and provide the next diff.
also, i need to know about "openbsc/openbsc.h" include file, i would like to add. it shall only include functions and definitions relevant for the application to use libbsc. because the application does not need to know about libbsc internals, the pointer to the "struct gsm_net" is of type "void". example in the first parameter of mncc_send():
int mncc_send(void *net, int msg_type, void *arg);
this header file contains structures that are used by application and libbsc also, like:
enum gsm_bts_type
currently i copied the bootstrap code from bsc_hack.c into my LCR application, so i need to incude more than openbsc.h there. in my case i use a file called "bootstrap.c" which takes all the parameters to initiate gsm network an controls bootstrapping. i think this should be part ob libbsc in the future. if bootstrapping would be part of libbsc, there is no need to include more than openbsc.h to use the MNCC interface. what do you think?
best regards,
andreas
On Tuesday 19 May 2009 15:40:38 Andreas.Eversberg wrote:
dear holger, dear harald,
don't worry about little communication problems. the difference between being offensive and being contructive is only determined by the sound of voice, i think. we can't hear the "tone" in emails, so we try to imagine the tone when we read mails. so your constructive arguments can be easily understand wrong.
great, thanks.
harald already did a list of parts in it's order:
- timer rename throughout the existing code
- llist header changes (why were they made? c++?)
- the transmit delay timer
- introduction of trau interface
- bsc_select_main(polling)
- paging extension with cbfn BTS pointer
- the actual MNCC interface
- installation of libbsc (this should be last, since before the other changes it is of no use)
i will start this week to apply the changes to the latest SVN snapshot, one by one. i will test it by calling from one mobile station to another station. (i think that is enough.) i will create a diff and announce it on the mailing list.
You might find git-svn or quilt handy. Specially with git it is really easy to move hunks from one patch to another, and reapply things against later snapshots. I love this tool! And yes, sending them to the mailinglist would be my preferred mode operation.
also, i need to know about "openbsc/openbsc.h" include file, i would like to add. it shall only include functions and definitions relevant for the application to use libbsc. because the application does not need to know about libbsc internals, the pointer to the "struct gsm_net" is of type "void". example in the first parameter of mncc_send():
Please go ahead and create it, I think for now we should collect all public API in this header file. you can even pass struct gsm_net* and struct gsm_bts* around. It is unlikely that we will stop using and the compiler will be happy to just pass around the pointer (it knows the storage size). The benefit of this is that we have some level of type checking (in contrast to void*)
currently i copied the bootstrap code from bsc_hack.c into my LCR application, so i need to incude more than openbsc.h there. in my case i use a file called "bootstrap.c" which takes all the parameters to initiate gsm network an controls bootstrapping. i think this should be part ob libbsc in the future. if bootstrapping would be part of libbsc, there is no need to include more than openbsc.h to use the MNCC interface. what do you think?
If I understood this correctly it looks like the way to go. The goal should be to just include openbsc/openbsc.h, kick the lib to initialize and then are ready to go.
z.
Hi Andreas,
On Tue, May 19, 2009 at 03:40:38PM +0200, Andreas.Eversberg wrote:
let's get back to the patches. first, i decided to use one big patch, because the application interface requires almost all other parts to work. what i can do is to provide single patches that will work stand-allone, but some are dependant of earlier patches.
yes, the dependency is obviously there, don't worry about that. This is why the order matters...
harald already did a list of parts in it's order:
- timer rename throughout the existing code
- llist header changes (why were they made? c++?)
- the transmit delay timer
- introduction of trau interface
- bsc_select_main(polling)
- paging extension with cbfn BTS pointer
- the actual MNCC interface
- installation of libbsc (this should be last, since before the other changes it is of no use)
i will start this week to apply the changes to the latest SVN snapshot, one by one. i will test it by calling from one mobile station to another station. (i think that is enough.)
yes, you maybe don't even need to do that, but if you're diligent, do it :)
i will create a diff and announce it on the mailing list. (i can also put it on home.eversberg.eu or on the wiki, if you whish). after that i will continue with the next step, test it and provide the next diff.
I think quilt might be the ideal tool to create this set of incremental patches. And yes, please send each patch to the mailinglist. If you update a patch, just send the new version.
also, i need to know about "openbsc/openbsc.h" include file, i would like to add. it shall only include functions and definitions relevant for the application to use libbsc. because the application does not need to know about libbsc internals, the pointer to the "struct gsm_net" is of type "void". example in the first parameter of mncc_send():
int mncc_send(void *net, int msg_type, void *arg);
this header file contains structures that are used by application and libbsc also, like:
enum gsm_bts_type
currently i copied the bootstrap code from bsc_hack.c into my LCR application, so i need to incude more than openbsc.h there. in my case i use a file called "bootstrap.c" which takes all the parameters to initiate gsm network an controls bootstrapping. i think this should be part ob libbsc in the future. if bootstrapping would be part of libbsc, there is no need to include more than openbsc.h to use the MNCC interface. what do you think?
My plan is to have the bootstrapping in libbsc (or whatever we will call it in the future). Once the vty code has matured, we should be able to read and write config files that contain the entire network setup with all its parameters.
At least at that point, applications using libbsc (in your context, i.e. lcr like applications) don't need to know any details, agreed.
The applications that I have in mind in fact need to know a lot more about the details, on the other hand...