Blame


1 d7094239 2003-11-23 devnull #pragma src "/sys/src/libip"
2 d7094239 2003-11-23 devnull #pragma lib "libip.a"
3 d7094239 2003-11-23 devnull
4 d7094239 2003-11-23 devnull enum
5 d7094239 2003-11-23 devnull {
6 d7094239 2003-11-23 devnull IPaddrlen= 16,
7 d7094239 2003-11-23 devnull IPv4addrlen= 4,
8 d7094239 2003-11-23 devnull IPv4off= 12,
9 d7094239 2003-11-23 devnull IPllen= 4,
10 d7094239 2003-11-23 devnull };
11 d7094239 2003-11-23 devnull
12 d7094239 2003-11-23 devnull /*
13 d7094239 2003-11-23 devnull * for reading /net/ipifc
14 d7094239 2003-11-23 devnull */
15 d7094239 2003-11-23 devnull typedef struct Ipifc Ipifc;
16 d7094239 2003-11-23 devnull typedef struct Ipifcs Ipifcs;
17 d7094239 2003-11-23 devnull
18 d7094239 2003-11-23 devnull struct Ipifc
19 d7094239 2003-11-23 devnull {
20 d7094239 2003-11-23 devnull char dev[64];
21 d7094239 2003-11-23 devnull uchar ip[IPaddrlen];
22 d7094239 2003-11-23 devnull uchar mask[IPaddrlen];
23 d7094239 2003-11-23 devnull uchar net[IPaddrlen]; /* ip & mask */
24 d7094239 2003-11-23 devnull Ipifc *next;
25 d7094239 2003-11-23 devnull };
26 d7094239 2003-11-23 devnull
27 d7094239 2003-11-23 devnull struct Ipifcs
28 d7094239 2003-11-23 devnull {
29 d7094239 2003-11-23 devnull Ipifc *first;
30 d7094239 2003-11-23 devnull Ipifc *last;
31 d7094239 2003-11-23 devnull };
32 d7094239 2003-11-23 devnull
33 d7094239 2003-11-23 devnull /*
34 d7094239 2003-11-23 devnull * user level udp headers
35 d7094239 2003-11-23 devnull */
36 d7094239 2003-11-23 devnull enum
37 d7094239 2003-11-23 devnull {
38 d7094239 2003-11-23 devnull Udphdrsize= 36, /* size of a Udphdr */
39 d7094239 2003-11-23 devnull };
40 d7094239 2003-11-23 devnull
41 d7094239 2003-11-23 devnull typedef struct Udphdr Udphdr;
42 d7094239 2003-11-23 devnull struct Udphdr
43 d7094239 2003-11-23 devnull {
44 d7094239 2003-11-23 devnull uchar raddr[IPaddrlen]; /* remote address and port */
45 d7094239 2003-11-23 devnull uchar laddr[IPaddrlen]; /* local address and port */
46 d7094239 2003-11-23 devnull uchar rport[2];
47 d7094239 2003-11-23 devnull uchar lport[2];
48 d7094239 2003-11-23 devnull };
49 d7094239 2003-11-23 devnull
50 d7094239 2003-11-23 devnull uchar* defmask(uchar*);
51 d7094239 2003-11-23 devnull void maskip(uchar*, uchar*, uchar*);
52 d7094239 2003-11-23 devnull int eipconv(va_list*, Fconv*);
53 d7094239 2003-11-23 devnull ulong parseip(uchar*, char*);
54 d7094239 2003-11-23 devnull ulong parseipmask(uchar*, char*);
55 d7094239 2003-11-23 devnull int parseether(uchar*, char*);
56 d7094239 2003-11-23 devnull int myipaddr(uchar*, char*);
57 d7094239 2003-11-23 devnull int myetheraddr(uchar*, char*);
58 d7094239 2003-11-23 devnull
59 d7094239 2003-11-23 devnull void readipifc(char*, Ipifcs*);
60 d7094239 2003-11-23 devnull
61 d7094239 2003-11-23 devnull void hnputl(void*, uint);
62 d7094239 2003-11-23 devnull void hnputs(void*, ushort);
63 d7094239 2003-11-23 devnull uint nhgetl(void*);
64 d7094239 2003-11-23 devnull ushort nhgets(void*);
65 d7094239 2003-11-23 devnull
66 d7094239 2003-11-23 devnull #define ipcmp(x, y) memcmp(x, y, IPaddrlen)
67 d7094239 2003-11-23 devnull #define ipmove(x, y) memmove(x, y, IPaddrlen)
68 d7094239 2003-11-23 devnull
69 d7094239 2003-11-23 devnull extern uchar IPv4bcast[IPaddrlen];
70 d7094239 2003-11-23 devnull extern uchar IPv4bcastobs[IPaddrlen];
71 d7094239 2003-11-23 devnull extern uchar IPv4allsys[IPaddrlen];
72 d7094239 2003-11-23 devnull extern uchar IPv4allrouter[IPaddrlen];
73 d7094239 2003-11-23 devnull extern uchar IPnoaddr[IPaddrlen];
74 d7094239 2003-11-23 devnull extern uchar v4prefix[IPaddrlen];
75 d7094239 2003-11-23 devnull extern uchar IPallbits[IPaddrlen];
76 d7094239 2003-11-23 devnull
77 d7094239 2003-11-23 devnull #define CLASS(p) ((*(uchar*)(p))>>6)