another tcp/ip stack

Hello,


I should like possibility like that (for example) in qnx-nto:
fd = socket(PF_INET, SOCK_PACKET, …);

Unfortunately, it is not possible now :frowning:

So, might me ask somebody on following questions:

Is there possibility to implement another tcp/ip stack implementation ?
If yes – where can Ii get that information ?
If no – could I insert between ethernet driver and tcp module ip-en converter another
than default ?

What is interface between socket manager and tcp/ip layers ?

Can i replace current routed (route daemon) to my own version ?
Reasons are:
1st: it has a BUG – He die after receiving of some bad packets (zero for example) on RIP
port.
2nd: it does not support multiple of modern routing protocols (BGP,OSPF…).

Vasili

vv40in <vv40in@mail.ru> wrote:

Hello,



I should like possibility like that (for example) in qnx-nto:
fd = socket(PF_INET, SOCK_PACKET, …);

Unfortunately, it is not possible now > :frowning:

So, might me ask somebody on following questions:

Is there possibility to implement another tcp/ip stack implementation ?
If yes – where can Ii get that information ?

The answer is yes. The DDK document explained the inside view of
io-net and it’s modules. You are supposingly be able to implement a
“protocol X” on top of “driver Y”, at least, that is the design goal
of io-net interface.

If no – could I insert between ethernet driver and tcp module ip-en converter another
than default ?

You still could insert a module (a filter) between that 2
modules. Again the DDK document explained “filter module”.
If you download the “ipfilter srouce package” from network
(I believe you can find it on qnx.tucows.com), the file
ipf_npi.c is a real example of filter module.

What is interface between socket manager and tcp/ip layers ?

I am not sure what you mean. tcpip module (npm-t[t]cpip.so) is
the one who maintain socket layer. So it is “socket manager”
itself too.

Can i replace current routed (route daemon) to my own version ?
Reasons are:
1st: it has a BUG – He die after receiving of some bad packets (zero for example) on RIP
port.
2nd: it does not support multiple of modern routing protocols (BGP,OSPF…).

routed is just an application using udp/tcp to gathering information,
the question is hwo to feed these routing information into socket.
Triditionaly, “routing socket” is used. So it is a question that
does the “routed” you have, using any “routing socket/command” that
the released “npm-tcpip.so” don’t understand?

-xtang

Thanks for answer.
See inside, please.

Xiaodan Tang <xtang@qnx.com>

vv40in <> vv40in@mail.ru> > wrote:
Hello,


I should like possibility like that (for example) in qnx-nto:
fd = socket(PF_INET, SOCK_PACKET, …);

Unfortunately, it is not possible now > :frowning:

So, might me ask somebody on following questions:

Is there possibility to implement another tcp/ip stack implementation ?
If yes – where can Ii get that information ?

The answer is yes. The DDK document explained the inside view of
io-net and it’s modules. You are supposingly be able to implement a
“protocol X” on top of “driver Y”, at least, that is the design goal
of io-net interface.

If no – could I insert between ethernet driver and tcp module ip-en converter another
than default ?

You still could insert a module (a filter) between that 2
modules. Again the DDK document explained “filter module”.
If you download the “ipfilter srouce package” from network
(I believe you can find it on qnx.tucows.com), the file
ipf_npi.c is a real example of filter module.

What is interface between socket manager and tcp/ip layers ?

I am not sure what you mean. tcpip module (npm-t[t]cpip.so) is
the one who maintain socket layer. So it is “socket manager”
itself too.
1.

I told about interface with /lib/libsocket*. What about it if we’ll replace nmp-tcpip.so?
2.
In http://qdn.qnx.com/support/docs/neutrino_qrp/lib_ref/r/resmgr_attach.html we see
<<file_type _FTYPE_SOCKET – Reserved for a TCP/IP or UDP Socket manager.>>
What is it?
If i has correct understood – to create my own protocol i should mount my filter (en_en
in that example) with that file_type, dont it ?
And after that I could receive and handle io_open messages from clients how called
socket(PF_INET, SOCK_PACKET, htons(ETH_P_ALL)); (how in Linux) ?
Or no ? IMHO – no. How realy ?
Or i should register some /dev/pack0 and client will call open(…) and read(…) it ?
(it is already implemented, but it is bad realization)
because: Q: what is mechanism of implementing of new protocol families which will work
with socket(…) call ?

Can i replace current routed (route daemon) to my own version ?
Reasons are:
1st: it has a BUG – He die after receiving of some bad packets (zero for example) on
RIP
port.
2nd: it does not support multiple of modern routing protocols (BGP,OSPF…).

routed is just an application using udp/tcp to gathering information,
the question is hwo to feed these routing information into socket.
Triditionaly, “routing socket” is used. So it is a question that
does the “routed” you have, using any “routing socket/command” that
the released “npm-tcpip.so” don’t understand?

Yes, npm-tcpip.so dont understand that info.
And question is: what to do – how to implement new routing protocols ?
Or i cannot understand You ?
And what about that bug in routed (i checked it with nto-PatchA) ?

Respectfully Yours,
Vasili