QNX4 and TCP/IP

Hi,
I just started having a problem with some computers and TCP/IP.
Everything works fine, as long as I am node1, however, if I change to any
other node, no TCP/IP works anymore, or rather it looks like it’s working,
but I can’t ping from the machine or to it, I can’t connect through telnet,
I can’t do much. It is not a license problem as I have numerous licenses,
and never have complaints about licenses when I start Socklet.]
Has anyone ever encountered an error of this type before.
If anyone wants more info I’ll be happy to give it.

Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Chris Nasr <cnasr@mechtronix.ca> wrote:

Hi,
I just started having a problem with some computers and TCP/IP.
Everything works fine, as long as I am node1, however, if I change to any
other node, no TCP/IP works anymore, or rather it looks like it’s working,
but I can’t ping from the machine or to it, I can’t connect through telnet,
I can’t do much. It is not a license problem as I have numerous licenses,
and never have complaints about licenses when I start Socklet.]
Has anyone ever encountered an error of this type before.
If anyone wants more info I’ll be happy to give it.

If you are changing the qnx node number then it is probably problem with
licenses (you cannot have node number grather than number of valid QNX
licenses available on the node).

If you mean last byte in TCP/IP address, its probably conflict, check
to ping the address while the new node is down.

(node number and last address can differ, no problem…)

I have no other idea.

Andy

Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Hello,
As I said, it’s not a license thing, I have more then enough, I checked and
rechecked.
It is not a conflict issue, because it’s not the IP address, because any address
works fine on node 1, no address works on any other node. Plus, there are only
two computers ever on, one QNX Biscuit PC, and one Windows machine on their own
hub.
Does anyone else have any ideas? Or things to try.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

There is an environment variable call SOCK, it inform TCP/IP client
program such as telnet, ftp etc where Socket is. That way
client program can use Socket that is on a different machine (cool hey).

By default SOCK isn’t defined but in your case maybe it is set to node
1 in a script somewhere. So if you change the node number of the
machine without changing the value of SOCK ,nothing would work.

When you say “doesn’t” work, what kind of error do you see.
Is it “No such Process” or “No route to host”. If that is the case
I’m fairly sure problem is with the environment variable SOCK.


“Chris Nasr” <cnasr@mechtronix.ca> wrote in message
news:3A913E4F.A965F3B1@mechtronix.ca

Hello,
As I said, it’s not a license thing, I have more then enough, I checked
and
rechecked.
It is not a conflict issue, because it’s not the IP address, because any
address
works fine on node 1, no address works on any other node. Plus, there are
only
two computers ever on, one QNX Biscuit PC, and one Windows machine on
their own
hub.
Does anyone else have any ideas? Or things to try.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Mario,
Vanya also says hi.
I went and double checked the machine, here is what else I found,

  1. I was wrong, it’s not just node 1, it’s also node 2 that
    works, but not nodes 3, 4, 5, or 6.

  2. There is no export variables SOCK in the system at any time.

  3. I double checked the licenses, and even put another .licenses
    file with 11 tcprt licenses.

  4. And there is no error, nothing when Socklet starts, and
    nothing when I try to ping the other machine, it just keeps
    trying on QNX, and on Windows it tries till it times out.

So I’m still stumped, but thanks very much for the help, I really
appreciate it.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Chris Nasr <cnasr@mechtronix.ca> wrote:

Mario,
Vanya also says hi.
I went and double checked the machine, here is what else I found,

  1. I was wrong, it’s not just node 1, it’s also node 2 that
    works, but not nodes 3, 4, 5, or 6.

  2. There is no export variables SOCK in the system at any time.

  3. I double checked the licenses, and even put another .licenses
    file with 11 tcprt licenses.

  4. And there is no error, nothing when Socklet starts, and
    nothing when I try to ping the other machine, it just keeps
    trying on QNX, and on Windows it tries till it times out.

Can you ping localhost on those machines?

What do your ifconfig lines look like? (Both on node 1 & 2 that
work and on the ones that don’t.)

-David

QNX Training Services
dagibbs@qnx.com

Hi,
I think everyone is misunderstanding me. When I say node1 machine
or node 2 machine, it’s the same machine, I am merely changing the
…boot file. I am using the exact same machine, with the same hardware
with the exact same files, only the boot image is different.

And yes, I can ping localhost and the asigned IP address no matter the
node number,

the ifconfig line looks as so for no matter what the node number,

en1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST>
inet 192.168.1.55 netmask ffffff00 broadcast 192.168.1.255

Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Chris Nasr <cnasr@mechtronix.ca> wrote:

Hi,
I think everyone is misunderstanding me. When I say node1 machine
or node 2 machine, it’s the same machine, I am merely changing the
.boot file. I am using the exact same machine, with the same hardware
with the exact same files, only the boot image is different.

In you /etc/config directory, do you have any sysinit.# files? For
instance an /etc/config/sysinit.1 and /etc/config/sysinit.2 but no
sysinit.3 or higher? The change of node number might be changing
which of these initialization files is automatically selected, and
they may be doing something different.

-David

QNX Training Services
dagibbs@qnx.com

No,
there is no sysinit. files, only a sysinit file, all the machines
need to have the same setup no matter the node number so there is no
sysinit. files.

David Gibbs wrote:

Chris Nasr <> cnasr@mechtronix.ca> > wrote:
Hi,
I think everyone is misunderstanding me. When I say node1 machine
or node 2 machine, it’s the same machine, I am merely changing the
.boot file. I am using the exact same machine, with the same hardware
with the exact same files, only the boot image is different.

In you /etc/config directory, do you have any sysinit.# files? For
instance an /etc/config/sysinit.1 and /etc/config/sysinit.2 but no
sysinit.3 or higher? The change of node number might be changing
which of these initialization files is automatically selected, and
they may be doing something different.

-David

QNX Training Services
dagibbs@qnx.com


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Chris Nasr wrote:

Hi,
I think everyone is misunderstanding me. When I say node1 machine
or node 2 machine, it’s the same machine, I am merely changing the
.boot file. I am using the exact same machine, with the same hardware
with the exact same files, only the boot image is different.

I think everyone who read your posting, got the first impression that
the nodes were all physically different machines, so your posting wasn’t
clear…

And yes, I can ping localhost and the asigned IP address no matter the
node number,

the ifconfig line looks as so for no matter what the node number,

en1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST
inet 192.168.1.55 netmask ffffff00 broadcast 192.168.1.255

Maybe posting exactly how you start up your TCP/IP stack might also
help. Is this from your system init, or by hand? In any case, it is a
very trivial operation. Assuming that this is an isolated network of two
hosts, and assuming your QNX host’s name is ‘Biscuit’, and assuming your
Windows machine has address 192.168.1.X (i.e. on the same network), you
can try this by hand:

just for sure:
slay Socklet
export SOCK= ( is the node number you currently are)

Socklet Biscuit &
no errors? then continue with:

ifconfig lo0 127.0.0.1 up
ifconfig en1 192.168.1.55 up

verify with:
ifconfig en1
ping 192.168.1.X

Also in general, if you’re starting from system init, note that some
ethernet drivers may need some time to really start up properly before
you can start up Socklet.

Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Ok,
I tried it manually, exactly as you said, like so

export SOCK=4 # current node number

Socklet cdu1 & # mapped to 192.168.1.55 in /etc/hosts

ifconfig lo0 127.0.0.1 up
ifconfig en1 192.168.1.55 up

ifconfig en1 # same message as previously posted.
ping 192.168.1.X # nothing happens.

and it’s definately not the ethernet driver, unless the driver itself cares
about node numbers, which it never has in the past (by the way Net.ether1000
in case anyone is wondering)

\

Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

something that has bitten me in the past is that Socket will pull
mac addresses from the netmap file.
make absolutely sure that your netmap files are correct before you
start Socket.
a good way to check this is with netstat -i when you start Socket.
i think that Socket is running fine but that you have the wrong mac address
for the tcp services.
you can also use netinfo -l to see the correct mac address from the card.
make sure that your netmap file has this same mac address for your node.

Chris Nasr <cnasr@mechtronix.ca> wrote:

No,
there is no sysinit. files, only a sysinit file, all the machines
need to have the same setup no matter the node number so there is no
sysinit. files.

David Gibbs wrote:

Chris Nasr <> cnasr@mechtronix.ca> > wrote:
Hi,
I think everyone is misunderstanding me. When I say node1 machine
or node 2 machine, it’s the same machine, I am merely changing the
.boot file. I am using the exact same machine, with the same hardware
with the exact same files, only the boot image is different.

In you /etc/config directory, do you have any sysinit.# files? For
instance an /etc/config/sysinit.1 and /etc/config/sysinit.2 but no
sysinit.3 or higher? The change of node number might be changing
which of these initialization files is automatically selected, and
they may be doing something different.

-David

QNX Training Services
dagibbs@qnx.com


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.


Randy Martin randy@qnx.com
Manager of FAE Group, North America
QNX Software Systems www.qnx.com
175 Terence Matthews Crescent, Kanata, Ontario, Canada K2M 1W8
Tel: 613-591-0931 Fax: 613-591-3579

Chris Nasr <cnasr@mechtronix.ca> wrote:

Ok,
I tried it manually, exactly as you said, like so

export SOCK=4 # current node number

Socklet cdu1 & # mapped to 192.168.1.55 in /etc/hosts

ifconfig lo0 127.0.0.1 up
ifconfig en1 192.168.1.55 up

ifconfig en1 # same message as previously posted.
ping 192.168.1.X # nothing happens.

When you say “nothing happens” I guess it is like:

PING 192.168.1.1 (192.168.1.1): 56 data bytes

And nothing comming back, right?

What you could go from here is:

  1. check “arp -na”, see if the 192.168.1.1 is in the arp table,
    to make sure arp request is send, and replyed.

  2. check “netstat -ni”, see if the and numbers on en1 is changed.
    is packet going out? Any packet comming in, any error ?

  3. check “netstat -p ip” and “netstat -p icmp” see if there is
    any problem there. (The remote guy didn’t agree with your
    current address?)

  4. “nicinfo -L1”, any problem reported by Net.ether1000 ?

This could probably give you a clue where things going wrong.

-xtang

and it’s definately not the ethernet driver, unless the driver itself cares
about node numbers, which it never has in the past (by the way Net.ether1000
in case anyone is wondering)


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Hi,
The netmap file is in fact empty. So it can’t be pulling anything out of it.

Randy Martin wrote:

something that has bitten me in the past is that Socket will pull
mac addresses from the netmap file.
make absolutely sure that your netmap files are correct before you
start Socket.
a good way to check this is with netstat -i when you start Socket.
i think that Socket is running fine but that you have the wrong mac address
for the tcp services.
you can also use netinfo -l to see the correct mac address from the card.
make sure that your netmap file has this same mac address for your node.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Having been bitten by that as well :slight_smile:
I would second Randy’s advice:

a good way to check this is with netstat -i when you start Socket.
i think that Socket is running fine but that you have the wrong mac address
for the tcp services.
you can also use netinfo -l to see the correct mac address from the card.

I recommend removing the netmap file altogether
if only using TCP/IP.

Well if even Xiaodan’s and Randy’s suggestions aren’t revealing
anything, then it sure looks as though you’ve pursued all possible
options. Well almost…

You could try plugging in another QNX node and try to communicate with
it using good old QNX networking (aka FLEET). If you can see the other
node, then your basic networking is set up OK. And if that is the case,
then the only thing I can think of is that somehow your windows host
isn’t working properly. In that case you can set up TCP/IP on the other
QNX node and try pinging it.

If you don’t have another QNX node, you can use your windows PC for this
test by creating a QNX file system on floppy and copy the utils you need
to it and use this together with your QNX boot floppy to setup a minimal
QNX system. (And don’t forget to use the SOCK env variable properly)

good luck,

rick

[just in case it wasn’t clear, I’m not from QSSL]

Chris Nasr wrote:

Hi,
The netmap file is in fact empty. So it can’t be pulling anything out of it.

Randy Martin wrote:

something that has bitten me in the past is that Socket will pull
mac addresses from the netmap file.
make absolutely sure that your netmap files are correct before you
start Socket.
a good way to check this is with netstat -i when you start Socket.
i think that Socket is running fine but that you have the wrong mac address
for the tcp services.
you can also use netinfo -l to see the correct mac address from the card.
make sure that your netmap file has this same mac address for your node.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Hello,

I know that the basic networking is fine, because if I plug the QNX machine onto
the regular network I can see the other QNX nodes that are there and transfer file
around (I know this for a fact because I needed to transfer “netinfo” from my QNX
Server onto the little Biscuit-PC (very little space) so I could check the MAC
Address.

And in fact how I setup the BiscuitPC/Disconchip is by using a floppy disk and
getting files of a network QNX Server.

I could try pinging one of these machines if I changed the subnet on one or the
other. But I’m quite sure that won’t change anything as the IP Address works fine
when I am node1 or 2, it never changes when I change node number, nor does a single
piece of hardware.

I have not yet had the time to try any of the suggestions that Xiaodan has given me
(I hate it when I’m trying to figure out something and I get a ton of work to do at
the same time) but I am optimistic that it will shed some light on the situation,
and I will share it with you as soon as I can.

Thanks to everyone that has helped and made suggestions, I really appreciate it.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Try to put your physical address (got by netinfo -l | more)
to /etc/config/netmap

i.e. when your node is //1 it seems like

1 1 00495A AE45EE

and then after changing to node 2

2 1 00495A AE45EE

I don’t see into Net, but once I’ve already failed to use TCP/IP
because having one-to-one netmap … May be having no explicit
definition of physical address, a default is chosen and it fit
real situation only for NODE = 1

Andy

Hello everyone,
well just to let everybody know the problem no longer exists, although I can’t
say exactly why at the moment, (I’ll spend more time on that when I can) I do
know that it had something to do with running “netmap -f” in the sysinit file.
When I comment it out everything works just as it should (leading me to believe
this problem always existed, I just never noticed before because I never
created nodes over 2)

To make a long boring e-mail shorter, thanks alot to everyone who helped me. I
must say that in a twisted way I’m quite glad all this happened, because I am
much wiser for it. It’s odd to think that when things work we tend to take them
for granted, it’s only when it doesn’t work that we learn how it should work.

Thanks again, much appreciated. I hope I can help some of you when day when you
need it.


Chris Nasr
cnasr[at]mechtronix[dot]ca
Mechtronix Systems Inc.

Chris Nasr <cnasr@mechtronix.ca> wrote:

Hello everyone,
well just to let everybody know the problem no longer exists, although I can’t
say exactly why at the moment, (I’ll spend more time on that when I can) I do
know that it had something to do with running “netmap -f” in the sysinit file.
When I comment it out everything works just as it should (leading me to believe
this problem always existed, I just never noticed before because I never
created nodes over 2)

If you had an incorrect netmap file, then the netmap -f will probably break
things. It tells Net about what the physical hardware address for your node
is, then Socket asks Net for this information. If this machine has had
different identities, and you didn’t update the netmap with appropriate
information each time you changed, that could cause a problem.

-David

QNX Training Services
dagibbs@qnx.com