[comp.protocols.tcp-ip] Need help implementing IEN 116 nameserver

hls@oce-rd1.oce.nl (Harry Schreurs) (01/12/88)

Currently we use the IEN 116 nameserver which was recently
sent to com.sources.unix for our Bridge terminal servers.
We also have terminal servers from Ungermann-Bass in use ( NIU's ).
We are now changing the XNS based software for these terminal servers
to TCP/IP based software. Although it should be possible to use
the above mentioned nameserver, the NIU's refuse to work with
our nameserver.
After some studying we found that the NIU's only accept responses
from our nameserver where the the IP identification has the value 0x4944 !!
This however is impossible with 4.3 BSD. I'am not able to specify the value
in the identification field of the IP header.

In ip_output.c I found the following code:

===================================================
	/*
	 * Fill in IP header.
	 */
	if ((flags & IP_FORWARDING) == 0) {
		ip->ip_v = IPVERSION;
		ip->ip_off &= IP_DF;
		ip->ip_id = htons(ip_id++);
		ip->ip_hl = hlen >> 2;
	} else
		hlen = ip->ip_hl << 2;
===================================================

The IP identification in an outgoing IP packet is given the
value of the variable ip_id which is afterwards incremented.

So I cannot assign a specific value without modifying the
source of ip_output.c

Any Suggestions?

===============================================================================
Harry Schreurs                             | DISCLAIMER:  This  note  does  not
Oce Nederland B.V., Research & Development | necessarily represent the position
p.o. box 101, 5900 MA  Venlo               | of  Oce-Nederland  B.V.  Therefore
The Netherlands         telex 58037 Oce NL | no liability or responsibility for
hls@oce.nl  or  ..!uunet!mcvax!oce-rd1!hls | whatever will be accepted.

ron@TOPAZ.RUTGERS.EDU (Ron Natalie) (01/15/88)

That's probably not the bug.  We use a perfectly normal sun kernel
with an IEN116 nameserver with the UB products.  The problem that
we have is that the UDP checksum code in the UB box is defective.
If you do not have udp checksumming turned on (you leave the checksum
field zero), the box doesn't realize that you are not computing checksums
and ignores you.  The quick solution is to turn on checksums on the
machine that is providing name service (on BSD UNIX poke _udpcksum to
1).

-Ron