summaryrefslogtreecommitdiffstats
path: root/private/inc/sys/snet/arp_ctrl.h
blob: 4dfee02b1b4ee8f39457e199017fdd323d938693 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*++

Copyright (c) 1991  Microsoft Corporation

Module Name:

    arp_ctrl.h

Abstract:

    This file defines the user-level IOCTL interface to the ARP driver.

Author:

    Mike Massa (mikemas)           Jan 18, 1992

Revision History:

    Who         When        What
    --------    --------    ----------------------------------------------
    mikemas     01-18-92     created

Notes:

--*/

/******************************************************************
 *
 *  SpiderTCP ARP Interface Primitives
 *
 *  Copyright 1988  Spider Systems Limited
 *
 *  arp_control.h
 *
 *  ARP Streams ioctl primitives for SpiderTCP
 *
 ******************************************************************/

/*
 *       /usr/projects/spare/PBRAIN/SCCS/pbrainG/dev/src/include/sys/snet/0/s.arp_control.h
 *      @(#)arp_control.h       1.5
 *
 *      Last delta created      19:19:24 11/1/91
 *      This file extracted     16:49:13 12/23/91
 *
 *      Modifications:
 *
 *
 */

#ifndef _SYS_SNET_ARP_CTRL_INCLUDED
#define _SYS_SNET_ARP_CTRL_INCLUDED


#define MAXHWLEN        6               /* max size of a hardware address */
#define MAXANAMLEN      64              /* max size of adaptername */



/*
 * M_IOCTL types
 */
#define ARP_INS         (('A'<<8) | 1)  /* put arp entry into table     */
#define ARP_DEL         (('A'<<8) | 2)  /* delete entry from table      */
#define ARP_GET         (('A'<<8) | 3)  /* return table entry           */
#define ARP_MGET        (('A'<<8) | 4)  /* return all table entries     */
#define ARP_TYPE        (('A'<<8) | 5)  /* cause a DL_TYPE transfer     */

/*
 * IOCTL structure definitions
 */

#ifdef COMPILE_UP_TCPIP

/*
 * Uniprocessor stack-specific definitions
 */

#define LONGLIFE 1      /* entry is permanent */
#define ARP_PENDING  2 /* ARP request pending */

struct arp_ins {
        long in_addr;
        char dl_add[6];
        short life;     /* lifetime in minutes; LONGLIFE for permanent */
};

struct arp_get {
        long in_addr;
        char dl_add[6];
        int  life;
        int  flag;
};

#else /* COMPILE_UP_TCPIP */

/*
 * Multiprocessor stack-specific definitions
 */

struct arp_ins {
        long in_addr;
        char hw_len;
        char dl_add[MAXHWLEN];
        time_t expiry;             /* relative expiration time in seconds */
};


struct arp_get {
        long in_addr;
        char hw_len;
        short hardware_type;
        char dl_add[MAXHWLEN];
        time_t expiry;            /* relative expiration time in seconds */
};

#endif /* COMPILE_UP_TCPIP */


struct arp_del {
        long in_addr;
};


struct arp_mget {
        long network;
        int num;
};


/*
 * IOCTL structure
 */
struct arp_req {
        int prim_type;
        union req {
                struct arp_ins arp_ins;
                struct arp_del arp_del;
                struct arp_get arp_get;
                struct arp_mget arp_mget;
        } req;
};

typedef struct arp_type {
    short   trailers;               /* are trailers used? */
    char    aname[MAXANAMLEN];      /* name of adapter, used by snmp */
} ARP_TYPES;

#define MAX_EXPIRY      0xFFFFFFFF      /* expiry time for permanent entries */
#define TIME_TIL_REUSE 15 /* time (secs) until entry reused */

#endif // _SYS_SNET_ARP_CTRL_INCLUDED