Int 2F Fn 7A40 - Novell Netware - Tcp/ip Protocol Stack - Installation C [N]

AX = 7A40h

Return: AX = 7AFFh if installed
0000h:BX = address of interrupt vector for MLID ISR
CX = version (CH=major, CL=minor)
DX = 0000h
ES:DI -> entry point for TCP/IP stack (see #2589)

Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface
this function is also supported by the Beame&Whiteside BWLWP40 shim,
but it only returns AL and ES:DI, and does not support AX=7A41h

See Also: AX=7A41h,INT 15/AX=DE2Eh,INT 60"Excelan"


(Table 2588)
Values for NetWare TCP/IP function code:
01h "accept" accept a network connection request
02h "bind" associate an address with a socket
03h close socket
Call: socket number field set
04h "connect" connect to a remote host
05h "getmyipaddr" get IP address
Call: socket number field in sockaddr set to 0000h
06h "getmymacaddr" get hardware address
07h "getpeername"
08h "getsockname" get socket name
09h "getsockopt" get socket options
0Ah "getsubnetmask" get subnet mask
0Bh "ioctl"
0Ch "listen" wait for connection request on socket
0Dh "select"

Return: socket bitmap updated (1=active)
0Eh "setmyipaddr" (obsolete) set IP address
0Fh "setsockopt" set socket options
10h "shutdown"
11h "socket" open socket
Call: socket number field set to 0000h

Return: socket number set
12h "recv" get data from peer
13h "recvfrom" get data from specified remote host
Call: socket number set
packet length and buffer descriptors set

Return: packet length and receive buffers updated
sockaddr field set to source port number + IP address
14h "send" write data to socket
15h "sendto" write data to specified recipient
Call: socket number set
flags at offset 18h = 0000h
packet length and buffer descriptors set
---v4.02+ ---
16h get BOOTP data

Return: BOOTP data stored in parameter block (see #2592)
17h "getsnmpinfo"
18h "getpathinfo" get/set configuration???
---v4.??? ---
19h "getifn" get interface number
1Ah "setipinfo" set IP information
1Bh "getipinfo" get IP information
1Ch "setdnsinfo" set DNS information
1Dh "getdnsinfo" get DNS information
1Eh "setroutes" set/modify route entry(ies)
1Fh "getroutes" get route entry(ies)
20h "removeroutes" remove route entry(ies)
21h "setarpe" set/modify ARP entry(ies)
22h "getarpe" get ARP entry(ies)
23h "removearpe" remove ARP entry(ies)

Notes: these functions are based on the Unix socket interface
OR function number with 80h to call ESR

See Also: #2590

(Table 2589)
Call NetWare TCP/IP entry point with:
ES:SI -> parameter block (see #2590)

Return: ES:SI parameter block updated
DX may be destroyed

Format of NetWare TCP/IP Request Control Block (RCB):
Offset Size Description (Table 2590)
00h DWORD -> next RCB
04h DWORD -> previous RCB
08h DWORD -> FAR post routine called if bit 7 of function code set
0Ch BYTE flags (internal use)
bit 0: request in progress
bit 1: posted
bit 2: Windows
bit 3: "PROTBUF"
bit 4: "ABORTRCB" for Ctrl-Break handling
bit 5: call INT 21/AX=0B00h while blocking
0Dh 7 BYTEs ???
14h BYTE (ret) temporary result code
15h BYTE (call) function code (bit 7 set if non-blocking) (see #2588)
16h BYTE socket number
17h BYTE (ret) result or error code (see #2591)
---accept/bind/connect/getmyipaddr/getpeername/getsockname commands---
18h sockaddr structure (WORD port + DWORD IP address)
---close comand---
no additional fields
---getmymacaddr command---
18h 6 BYTEs low-level hardware network address
---BOOTP command---
18h 64 BYTEs BOOTP VSA data (see #2592)
---getpathinfo command
18h 8 BYTEs key
"TCP_CFG" used by PING.EXE
20h 128 BYTEs path
A0h WORD length of path in previous field
---getsockopt/setsockopt commands---
18h WORD option name
0004h SO_REUSEADDR
0008h SO_KEEPALIVE
0080h SO_LINGER
1Ah WORD option value
1Ch WORD "linger"
---getsubnetmask command---
18h DWORD subnet mask
---ioctl command---
18h DWORD argument value
1Ch WORD ioctl number
---listen command---
18h WORD maximum allowable connection backlog
---select command---
18h WORD number of sockets
1Ah fd_set readfds (bitmap of sockets)
fd_set writefds
fd_set expectionfds
DWORD timeout in clock ticks
---shutdown command---
18h WORD shutdown type
---socket command---
18h WORD protocol (1 = ICMP, 6 = TCP, 17 = UDP)
---I/O commands (recv,recvfrom,send,sendto)---
18h WORD flags
1Ah 6 BYTEs sockaddr from/to
WORD port number
DWORD IP address
20h WORD length of packet sent/received
22h WORD number of pointer/length pairs following (max 8)
24h 6N BYTEs buffer descriptors, each
Offset Size Description
00h DWORD pointer to buffer
04h WORD length of buffer
---getsnmpinfo command---
18h DWORD (ret) -> ??? data in TCPIP code segment
--getifn command---
18h WORD interface number
1Ah WORD MLID instance number
1Ch 128 BYTEs MLID name
---getipinfo/setipinfo commands---
18h WORD interface number (00h = default)
1Ah DWORD IP address
1Eh DWORD IP netmask
22h 3 DWORDs router addresses (00000000h = unused entry)
---getdnsinfo/setdnsinfo commands---
18h WORD interface number (00h = default)
1Ah 3 DWORDs name server IP addresses (00000000h = unused entry)
26h 128 BYTEs domain name
---getroutes/setroutes/removeroutes commands---
18h WORD number of route entries to follow (max 5)
1Ah 10N BYTEs route entries
DWORD destination host/net IP address
DWORD IP address of first router
WORD route type
---getarpe/setarpe/removearpe commands---
18h WORD number of ARP entries to follow (max 16)
1Ah 10N BYTEs ARP entries
DWORD destination IP address
6 BYTEs destination hardware address
---other commands---
18h 4 WORDs parameter words 0 to 3 (see #2588 for usage)

(Table 2591)
Values for NetWare TCP/IP status:
00h successful
04h would block
09h invalid socket
23h would block
24h operation in progress
25h already in progress
26h not a socket
27h destination address required
28h message too long
29h wrong protocol type for socket
2Ah protocol not available
2Bh protocol not supported
2Ch socket type not supported
2Dh operation not supported on socket
2Eh protocol family not supported
2Fh address family not supported by protocol family
30h address already in use
31h unable to assign requested address
32h network is down
33h network is unreachable
34h network dropped connection
35h software caused connection abort
36h connection reset by peer
37h no buffer space
38h socket is already connected
39h socket is not connected
3Ah socket is in shutdown mode
3Bh too many references
3Ch connection timed out
3Dh connection refused
3Eh too many levels of symbolic links
3Fh file name too long
40h host is down
41h host unreachable
42h protocol stack not installed
43h asynchronous operation not supported
44h synchronous operation not supported
45h no RCB available
FFh blocking (call has not yet returned)

See Also: #2590

Format of BOOTP data (stored in parameter block):
Offset Size Description (Table 2592)
18h 4 BYTEs ???
1Ch BYTE ??? (01h)
1Dh BYTE address length (04h)
1Eh 4 BYTEs subnet mask
22h BYTE ??? (03h)
23h BYTE ??? (04h)
24h 4 BYTEs IP address of nearest router
28h BYTE ??? (06h)
29h BYTE length of following data (08h)
2Ah 4 BYTEs IP address of nameserver 1
2Eh 4 BYTEs IP address of nameserver 2
32h BYTE ??? (0Ch)
33h BYTE length of local name
34h N BYTEs local host name
BYTE FFh (end marker)

See Also: #2590,#2588