Please wait until the page is fully downloaded and then press the "Expand" button or the blue line numbers.

0103000 /*
0103001 server/ip/gen/udp_io.h
0103002 */
0103004 #ifndef __SERVER__IP__GEN__UDP_IO_H__
0103005 #define __SERVER__IP__GEN__UDP_IO_H__
0103007 typedef struct nwio_udpopt
0103008 {
0103009          unsigned long nwuo_flags;
0103010          udpport_t nwuo_locport;
0103011          udpport_t nwuo_remport;
0103012          ipaddr_t nwuo_locaddr;
0103013          ipaddr_t nwuo_remaddr;
0103014 } nwio_udpopt_t;
0103016 #define NWUO_NOFLAGS              0x0000L
0103017 #define NWUO_ACC_MASK              0x0003L
0103018 #define        NWUO_EXCL              0x00000001L
0103019 #define              NWUO_SHARED              0x00000002L
0103020 #define              NWUO_COPY              0x00000003L
0103021 #define NWUO_LOCPORT_MASK       0x000CL
0103022 #define              NWUO_LP_SEL              0x00000004L
"LP" stands for Local Port.

The locport flags control the selection of the UDP port for this channel.

NWUO_LP_SEL requests the server to pick a port. This port will be in the
range from 32768 to 65535 and it will be unique. NWUO_LP_SET sets the
local port to the value of the nwuo_locport field. NWUO_LP_ANY does not
select a port. Reception of data is therefore not possible but it is
possible to send data.

0103023 #define              NWUO_LP_SET              0x00000008L
0103024 #define              NWUO_LP_ANY              0x0000000CL
0103025 #define NWUO_LOCADDR_MASK       0x0010L
0103026 #define              NWUO_EN_LOC              0x00000010L
0103027 #define              NWUO_DI_LOC              0x00100000L
0103028 #define NWUO_BROAD_MASK              0x0020L
0103029 #define        NWUO_EN_BROAD              0x00000020L
0103030 #define              NWUO_DI_BROAD              0x00200000L
0103031 #define NWUO_REMPORT_MASK       0x0100L
0103032 #define              NWUO_RP_SET              0x00000100L
0103033 #define              NWUO_RP_ANY              0x01000000L
0103034 #define NWUO_REMADDR_MASK       0x0200L
0103035 #define        NWUO_RA_SET              0x00000200L
as read from ip(4):
"NWUO_RA_SET sets the remote IP address the value of nwuo_remaddr. Only packets from that address will be delivered and all packets will be sent to that address."

0103036 #define              NWUO_RA_ANY              0x02000000L
NWUO_RA_ANY flag is set, which as we read also from ip(4):
"NWUO_RA_ANY allows reception of packets from any host and when transmitting packets the remote host has to be specified."

0103037 #define NWUO_RW_MASK              0x1000L
0103038 #define              NWUO_RWDATONLY              0x00001000L
case NWUO_RWDATONLY, where as we read from ip(4):
"only the data part of a UDP packet is sent to the server and only the data part is received from the server."

0103039 #define              NWUO_RWDATALL              0x10000000L
from ip(4) we read: "The NWUO_RWDATALL mode presents the data part of a UDP packet with a header that contains the source and destination IP address, source and destination UDP ports, the IP options, etc. The server expects such a header in front of the data to be transmitted."

0103040 #define NWUO_IPOPT_MASK              0x2000L
0103041 #define              NWUO_EN_IPOPT              0x00002000L
0103042 #define              NWUO_DI_IPOPT              0x20000000L
0103044 #endif /* __SERVER__IP__GEN__UDP_IO_H__ */