1{
2    This file is part of the Free Pascal run time library.
3    Copyright (c) 2001 by Marco van de Voort
4
5    The OS dependant sysctl constants.
6
7    See the file COPYING.FPC, included in this distribution,
8    for details about the copyright.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 **********************************************************************}
15
16
17CONST
18
19{
20 * Definitions for sysctl call.  The sysctl call uses a hierarchical name
21 * for objects that can be examined or modified.  The name is expressed as
22 * a sequence of integers.  Like a file path name, the meaning of each
23 * component depends on its place in the hierarchy.  The top-level and kern
24 * identifiers are defined here, and other identifiers are defined in the
25 * respective subsystem header files.
26}
27
28        CTL_MAXNAME     = 12;   {  largest number of components supported }
29
30{
31 * Each subsystem defined by sysctl defines a list of variables
32 * for that subsystem. Each name is either a node with further
33 * levels defined below it, or it is a leaf of some particular
34 * type given below. Each sysctl level defines a set of name/type
35 * pairs to be used by sysctl(1) in manipulating the subsystem.
36}
37
38Type
39    ctlname = record
40                ctl_name : pchar;       {  subsystem name }
41                ctl_type : cint         {  type of name }
42               End;
43
44Const
45        CTLTYPE         = $f;   {  Mask for the type }
46        CTLTYPE_NODE    = 1;    {  name is a node }
47        CTLTYPE_INT     = 2;    {  name describes an integer }
48        CTLTYPE_STRING  = 3;    {  name describes a string }
49        CTLTYPE_QUAD    = 4;    {  name describes a 64-bit number }
50        CTLTYPE_OPAQUE  = 5;    {  name describes a structure }
51        CTLTYPE_STRUCT  = CTLTYPE_OPAQUE;       {  name describes a structure }
52        CTLTYPE_UINT    = 6;    {  name describes an unsigned integer }
53        CTLTYPE_LONG    = 7;    {  name describes a long }
54        CTLTYPE_ULONG   = 8;    {  name describes an unsigned long }
55        CTLTYPE_UQUAD   = 9;    {  name describes an unsigned 64-bit number }
56
57        CTLFLAG_RD      = $80000000;    {  Allow reads of variable }
58        CTLFLAG_WR      = $40000000;    {  Allow writes to the variable }
59        CTLFLAG_RW      = (CTLFLAG_RD OR CTLFLAG_WR);
60        CTLFLAG_NOLOCK  = $20000000;    {  XXX Don't Lock }
61        CTLFLAG_ANYBODY = $10000000;    {  All users can set this var }
62        CTLFLAG_SECURE  = $8000000;     {  Permit set only if securelevel<=0 }
63        CTLFLAG_PRISON  = $4000000;     {  Prisoned roots can fiddle }
64        CTLFLAG_DYN     = $2000000;     {  Dynamic oid - can be freed }
65        CTLFLAG_SKIP    = $1000000;     {  Skip this sysctl when listing }
66        CTLMASK_SECURE  = $F00000;      {  Secure level }
67        CTLFLAG_DYING   = $1000;        {  Oid is being removed }
68
69{
70 * USE THIS instead of a hardwired number from the categories below
71 * to get dynamically assigned sysctl entries using the linker-set
72 * technology. This is the way nearly all new sysctl variables should
73 * be implemented.
74 * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");
75 }
76        OID_AUTO        = (-1);
77
78{
79 * Top-level identifiers
80 }
81        CTL_UNSPEC      = 0;
82        CTL_KERN        = 1;            {  "high kernel": proc, limits }
83        CTL_VM          = 2;            {  virtual memory }
84        CTL_VFS         = 3;            {  file system, mount type is next }
85        CTL_NET         = 4;            {  network, see socket.h }
86        CTL_DEBUG       = 5;            {  debugging parameters }
87        CTL_HW          = 6;            {  generic cpu/io }
88        CTL_MACHDEP     = 7;            {  machine dependent }
89        CTL_USER        = 8;            {  user-level }
90        CTL_P1003_1B    = 9;            {  POSIX 1003.1B }
91        CTL_LWKT        = 10;           {  light-weight kernel threads }
92        CTL_MAXID       = 11;           {  number of top-level ids }
93
94
95{
96 * CTL_KERN identifiers
97 }
98        KERN_OSTYPE             =  1;   {  string: system version }
99        KERN_OSRELEASE          =  2;   {  string: system release }
100        KERN_OSREV              =  3;   {  int: system revision }
101        KERN_VERSION            =  4;   {  string: compile time info }
102        KERN_MAXVNODES          =  5;   {  int: max vnodes }
103        KERN_MAXPROC            =  6;   {  int: max processes }
104        KERN_MAXFILES           =  7;   {  int: max open files }
105        KERN_ARGMAX             =  8;   {  int: max arguments to exec }
106        KERN_SECURELVL          =  9;   {  int: system security level }
107        KERN_HOSTNAME           = 10;   {  string: hostname }
108        KERN_HOSTID             = 11;   {  int: host identifier }
109        KERN_CLOCKRATE          = 12;   {  struct: struct clockrate }
110        KERN_VNODE              = 13;   {  struct: vnode structures }
111        KERN_PROC               = 14;   {  struct: process entries }
112        KERN_FILE               = 15;   {  struct: file entries }
113        KERN_PROF               = 16;   {  node: kernel profiling info }
114        KERN_POSIX1             = 17;   {  int: POSIX.1 version }
115        KERN_NGROUPS            = 18;   {  int: # of supplemental group ids }
116        KERN_JOB_CONTROL        = 19;   {  int: is job control available }
117        KERN_SAVED_IDS          = 20;   {  int: saved set-user/group-ID }
118        KERN_BOOTTIME           = 21;   {  struct: time kernel was booted }
119        KERN_NISDOMAINNAME      = 22;   {  string: YP domain name }
120        KERN_UPDATEINTERVAL     = 23;   {  int: update process sleep time }
121        KERN_OSRELDATE          = 24;   {  int: OS release date }
122        KERN_NTP_PLL            = 25;   {  node: NTP PLL control }
123        KERN_BOOTFILE           = 26;   {  string: name of booted kernel }
124        KERN_MAXFILESPERPROC    = 27;   {  int: max open files per proc }
125        KERN_MAXPROCPERUID      = 28;   {  int: max processes per uid }
126        KERN_DUMPDEV            = 29;   {  dev_t: device to dump on }
127        KERN_IPC                = 30;   {  node: anything related to IPC }
128        KERN_DUMMY              = 31;   {  unused }
129        KERN_PS_STRINGS         = 32;   {  int: address of PS_STRINGS }
130        KERN_USRSTACK           = 33;   {  int: address of USRSTACK }
131        KERN_LOGSIGEXIT         = 34;   {  int: do we log sigexit procs? }
132        KERN_IOV_MAX            = 35;   {  int: value of UIO_MAXIOV }
133        KERN_MAXPOSIXLOCKSPERUID= 36;   {  int: max POSIX locks per uid }
134        KERN_MAXID              = 37;   {  number of valid kern ids }
135
136
137{
138 * KERN_PROC subtypes
139 }
140        KERN_PROC_ALL           = 0;    {  everything }
141        KERN_PROC_PID           = 1;    {  by process id }
142        KERN_PROC_PGRP          = 2;    {  by process group id }
143        KERN_PROC_SESSION       = 3;    {  by session of pid }
144        KERN_PROC_TTY           = 4;    {  by controlling tty }
145        KERN_PROC_UID           = 5;    {  by effective uid }
146        KERN_PROC_RUID          = 6;    {  by real uid }
147        KERN_PROC_ARGS          = 7;    {  get/set arguments/proctitle }
148        KERN_PROC_CWD           = 8;    {  get cwd }
149        KERN_PROC_PATHNAME      = 9;    {  path to executable }
150
151{
152 * KERN_IPC identifiers
153 }
154        KIPC_MAXSOCKBUF         = 1;    {  int: max size of a socket buffer }
155        KIPC_SOCKBUF_WASTE      = 2;    {  int: wastage factor in sockbuf }
156        KIPC_SOMAXCONN          = 3;    {  int: max length of connection q }
157        KIPC_MAX_LINKHDR        = 4;    {  int: max length of link header }
158        KIPC_MAX_PROTOHDR       = 5;    {  int: max length of network header }
159        KIPC_MAX_HDR            = 6;    {  int: max total length of headers }
160        KIPC_MAX_DATALEN        = 7;    {  int: max length of data? }
161        KIPC_MBSTAT             = 8;    {  struct: mbuf usage statistics }
162        KIPC_NMBCLUSTERS        = 9;    {  int: maximum mbuf clusters }
163
164{
165 * CTL_HW identifiers
166 }
167        HW_MACHINE          =  1;       {  string: machine class }
168        HW_MODEL            =  2;       {  string: specific machine model }
169        HW_NCPU             =  3;       {  int: number of cpus }
170        HW_BYTEORDER        =  4;       {  int: machine byte order }
171        HW_PHYSMEM          =  5;       {  int: total memory }
172        HW_USERMEM          =  6;       {  int: non-kernel memory }
173        HW_PAGESIZE         =  7;       {  int: software page size }
174        HW_DISKNAMES        =  8;       {  strings: disk drive names }
175        HW_DISKSTATS        =  9;       {  struct: diskstats[] }
176        HW_FLOATINGPT       = 10;       {  int: has HW floating point? }
177        HW_MACHINE_ARCH     = 11;       {  string: machine architecture }
178        HW_MACHINE_PLATFORM = 12;       {  string: platform architecture }
179        HW_SENSORS          = 13;       {  node: hardware sensors }
180        HW_MAXID            = 14;       {  number of valid hw ids }
181
182
183{
184 * CTL_USER definitions
185 }
186        USER_CS_PATH            =  1;   {  string: _CS_PATH }
187        USER_BC_BASE_MAX        =  2;   {  int: BC_BASE_MAX }
188        USER_BC_DIM_MAX         =  3;   {  int: BC_DIM_MAX }
189        USER_BC_SCALE_MAX       =  4;   {  int: BC_SCALE_MAX }
190        USER_BC_STRING_MAX      =  5;   {  int: BC_STRING_MAX }
191        USER_COLL_WEIGHTS_MAX   =  6;   {  int: COLL_WEIGHTS_MAX }
192        USER_EXPR_NEST_MAX      =  7;   {  int: EXPR_NEST_MAX }
193        USER_LINE_MAX           =  8;   {  int: LINE_MAX }
194        USER_RE_DUP_MAX         =  9;   {  int: RE_DUP_MAX }
195        USER_POSIX2_VERSION     = 10;   {  int: POSIX2_VERSION }
196        USER_POSIX2_C_BIND      = 11;   {  int: POSIX2_C_BIND }
197        USER_POSIX2_C_DEV       = 12;   {  int: POSIX2_C_DEV }
198        USER_POSIX2_CHAR_TERM   = 13;   {  int: POSIX2_CHAR_TERM }
199        USER_POSIX2_FORT_DEV    = 14;   {  int: POSIX2_FORT_DEV }
200        USER_POSIX2_FORT_RUN    = 15;   {  int: POSIX2_FORT_RUN }
201        USER_POSIX2_LOCALEDEF   = 16;   {  int: POSIX2_LOCALEDEF }
202        USER_POSIX2_SW_DEV      = 17;   {  int: POSIX2_SW_DEV }
203        USER_POSIX2_UPE         = 18;   {  int: POSIX2_UPE }
204        USER_STREAM_MAX         = 19;   {  int: POSIX2_STREAM_MAX }
205        USER_TZNAME_MAX         = 20;   {  int: POSIX2_TZNAME_MAX }
206        USER_MAXID              = 21;   {  number of valid user ids }
207
208
209        CTL_P1003_1B_ASYNCHRONOUS_IO            = 1 ;   {  boolean }
210        CTL_P1003_1B_MAPPED_FILES               = 2 ;   {  boolean }
211        CTL_P1003_1B_MEMLOCK                    = 3 ;   {  boolean }
212        CTL_P1003_1B_MEMLOCK_RANGE              = 4 ;   {  boolean }
213        CTL_P1003_1B_MEMORY_PROTECTION          = 5 ;   {  boolean }
214        CTL_P1003_1B_MESSAGE_PASSING            = 6 ;   {  boolean }
215        CTL_P1003_1B_PRIORITIZED_IO             = 7 ;   {  boolean }
216        CTL_P1003_1B_PRIORITY_SCHEDULING        = 8 ;   {  boolean }
217        CTL_P1003_1B_REALTIME_SIGNALS           = 9 ;   {  boolean }
218        CTL_P1003_1B_SEMAPHORES                 = 10;   {  boolean }
219        CTL_P1003_1B_FSYNC                      = 11;   {  boolean }
220        CTL_P1003_1B_SHARED_MEMORY_OBJECTS      = 12;   {  boolean }
221        CTL_P1003_1B_SYNCHRONIZED_IO            = 13;   {  boolean }
222        CTL_P1003_1B_TIMERS                     = 14;   {  boolean }
223        CTL_P1003_1B_AIO_LISTIO_MAX             = 15;   {  int }
224        CTL_P1003_1B_AIO_MAX                    = 16;   {  int }
225        CTL_P1003_1B_AIO_PRIO_DELTA_MAX         = 17;   {  int }
226        CTL_P1003_1B_DELAYTIMER_MAX             = 18;   {  int }
227        CTL_P1003_1B_MQ_OPEN_MAX                = 19;   {  int }
228        CTL_P1003_1B_PAGESIZE                   = 20;   {  int }
229        CTL_P1003_1B_RTSIG_MAX                  = 21;   {  int }
230        CTL_P1003_1B_SEM_NSEMS_MAX              = 22;   {  int }
231        CTL_P1003_1B_SEM_VALUE_MAX              = 23;   {  int }
232        CTL_P1003_1B_SIGQUEUE_MAX               = 24;   {  int }
233        CTL_P1003_1B_TIMER_MAX                  = 25;   {  int }
234
235        CTL_P1003_1B_MAXID                      = 26;
236
237{       LongestStringInCtlNames = 21;}
238
239
240Const
241
242        CTL_NAMES : Array[0..10] OF CtlNameRec =  (
243        ( Name: '';  CtlType: 0 ),
244        ( Name: 'kern';  CtlType : CTLTYPE_NODE ),
245        ( Name: 'vm';  CtlType : CTLTYPE_NODE ),
246        ( Name: 'vfs';  CtlType : CTLTYPE_NODE ),
247        ( Name: 'net';  CtlType : CTLTYPE_NODE ),
248        ( Name: 'debug';  CtlType : CTLTYPE_NODE ),
249        ( Name: 'hw';  CtlType : CTLTYPE_NODE ),
250        ( Name: 'machdep';  CtlType : CTLTYPE_NODE ),
251        ( Name: 'user';  CtlType : CTLTYPE_NODE ),
252        ( Name: 'p1003_1b';  CtlType : CTLTYPE_NODE ),
253        ( Name: 'lwkt'; CtlType : CTLTYPE_NODE));
254
255        CTL_KERN_NAME : Array[0..35] OF CtlNameRec = (
256        ( Name: ''; CtlType: 0 ),
257        ( Name: 'ostype';  CtlType : CTLTYPE_STRING ),
258        ( Name: 'osrelease';  CtlType : CTLTYPE_STRING ),
259        ( Name: 'osrevision';  CtlType : CTLTYPE_INT ),
260        ( Name: 'version';  CtlType : CTLTYPE_STRING ),
261        ( Name: 'maxvnodes';  CtlType : CTLTYPE_INT ),
262        ( Name: 'maxproc';  CtlType : CTLTYPE_INT ),
263        ( Name: 'maxfiles';  CtlType : CTLTYPE_INT ),
264        ( Name: 'argmax';  CtlType : CTLTYPE_INT ),
265        ( Name: 'securelevel';  CtlType : CTLTYPE_INT ),
266        ( Name: 'hostname';  CtlType : CTLTYPE_STRING ),
267        ( Name: 'hostid';  CtlType : CTLTYPE_UINT ),
268        ( Name: 'clockrate';  CtlType : CTLTYPE_STRUCT ),
269        ( Name: 'vnode';  CtlType : CTLTYPE_STRUCT ),
270        ( Name: 'proc';  CtlType : CTLTYPE_STRUCT ),
271        ( Name: 'file';  CtlType : CTLTYPE_STRUCT ),
272        ( Name: 'profiling';  CtlType : CTLTYPE_NODE ),
273        ( Name: 'posix1version';  CtlType : CTLTYPE_INT ),
274        ( Name: 'ngroups';  CtlType : CTLTYPE_INT ),
275        ( Name: 'job_control';  CtlType : CTLTYPE_INT ),
276        ( Name: 'saved_ids';  CtlType : CTLTYPE_INT ),
277        ( Name: 'boottime';  CtlType : CTLTYPE_STRUCT ),
278        ( Name: 'nisdomainname';  CtlType : CTLTYPE_STRING ),
279        ( Name: 'update';  CtlType : CTLTYPE_INT ),
280        ( Name: 'osreldate';  CtlType : CTLTYPE_INT ),
281        ( Name: 'ntp_pll';  CtlType : CTLTYPE_NODE ),
282        ( Name: 'bootfile';  CtlType : CTLTYPE_STRING ),
283        ( Name: 'maxfilesperproc';  CtlType : CTLTYPE_INT ),
284        ( Name: 'maxprocperuid';  CtlType : CTLTYPE_INT ),
285        ( Name: 'dumpdev';  CtlType : CTLTYPE_STRUCT ), {  we lie; don't print as int }
286        ( Name: 'ipc';  CtlType : CTLTYPE_NODE ),
287        ( Name: 'dummy';  CtlType : CTLTYPE_INT ),
288        ( Name: 'ps_strings';  CtlType : CTLTYPE_INT ),
289        ( Name: 'usrstack';  CtlType : CTLTYPE_INT ),
290        ( Name: 'iov_max';  CtlType : CTLTYPE_INT ),
291        ( Name: 'maxposixlocksperuid';  CtlType : CTLTYPE_INT ));
292
293{
294 * CTL_VFS identifiers
295}
296        CTL_VFS_NAMES : array[0..0] of CTLNameRec = (
297        ( Name: 'vfsconf';  CtlType : CTLTYPE_STRUCT ));
298
299
300        CTL_HW_NAMES : array[0..13] of CTLNameRec = (
301        ( Name: ''; CtlType: 0 ),
302        ( Name: 'machine';  CtlType : CTLTYPE_STRING ),
303        ( Name: 'model';  CtlType : CTLTYPE_STRING ),
304        ( Name: 'ncpu';  CtlType : CTLTYPE_INT ),
305        ( Name: 'byteorder';  CtlType : CTLTYPE_INT ),
306        ( Name: 'physmem';  CtlType : CTLTYPE_UINT ),
307        ( Name: 'usermem';  CtlType : CTLTYPE_UINT ),
308        ( Name: 'pagesize';  CtlType : CTLTYPE_INT ),
309        ( Name: 'disknames';  CtlType : CTLTYPE_STRUCT ),
310        ( Name: 'diskstats';  CtlType : CTLTYPE_STRUCT ),
311        ( Name: 'floatingpoint';  CtlType : CTLTYPE_INT ),
312        ( Name: 'arch';  CtlType : CTLTYPE_STRING ),
313        ( Name: 'platform';  CtlType : CTLTYPE_STRING ),
314        ( Name: 'sensors';  CtlType : CTLTYPE_NODE ));
315
316
317        CTL_USER_NAMES  : array[0..20] of CTLNameRec = (
318        ( Name :''; CtlType: 0 ),
319        ( Name: 'cs_path';  CtlType : CTLTYPE_STRING ),
320        ( Name: 'bc_base_max';  CtlType : CTLTYPE_INT ),
321        ( Name: 'bc_dim_max';  CtlType : CTLTYPE_INT ),
322        ( Name: 'bc_scale_max';  CtlType : CTLTYPE_INT ),
323        ( Name: 'bc_string_max';  CtlType : CTLTYPE_INT ),
324        ( Name: 'coll_weights_max';  CtlType : CTLTYPE_INT ),
325        ( Name: 'expr_nest_max';  CtlType : CTLTYPE_INT ),
326        ( Name: 'line_max';  CtlType : CTLTYPE_INT ),
327        ( Name: 're_dup_max';  CtlType : CTLTYPE_INT ),
328        ( Name: 'posix2_version';  CtlType : CTLTYPE_INT ),
329        ( Name: 'posix2_c_bind';  CtlType : CTLTYPE_INT ),
330        ( Name: 'posix2_c_dev';  CtlType : CTLTYPE_INT ),
331        ( Name: 'posix2_char_term';  CtlType : CTLTYPE_INT ),
332        ( Name: 'posix2_fort_dev';  CtlType : CTLTYPE_INT ),
333        ( Name: 'posix2_fort_run';  CtlType : CTLTYPE_INT ),
334        ( Name: 'posix2_localedef';  CtlType : CTLTYPE_INT ),
335        ( Name: 'posix2_sw_dev';  CtlType : CTLTYPE_INT ),
336        ( Name: 'posix2_upe';  CtlType : CTLTYPE_INT ),
337        ( Name: 'stream_max';  CtlType : CTLTYPE_INT ),
338        ( Name: 'tzname_max';  CtlType : CTLTYPE_INT ));
339
340        CTL_P1003_1B_NAMES  : array[0..25] of CTLNameRec = (
341        ( Name: ''; CtlType: 0 ),
342        ( Name: 'asynchronous_io';  CtlType : CTLTYPE_INT ),
343        ( Name: 'mapped_files';  CtlType : CTLTYPE_INT ),
344        ( Name: 'memlock';  CtlType : CTLTYPE_INT ),
345        ( Name: 'memlock_range';  CtlType : CTLTYPE_INT ),
346        ( Name: 'memory_protection';  CtlType : CTLTYPE_INT ),
347        ( Name: 'message_passing';  CtlType : CTLTYPE_INT ),
348        ( Name: 'prioritized_io';  CtlType : CTLTYPE_INT ),
349        ( Name: 'priority_scheduling';  CtlType : CTLTYPE_INT ),
350        ( Name: 'realtime_signals';  CtlType : CTLTYPE_INT ),
351        ( Name: 'semaphores';  CtlType : CTLTYPE_INT ),
352        ( Name: 'fsync';  CtlType : CTLTYPE_INT ),
353        ( Name: 'shared_memory_objects';  CtlType : CTLTYPE_INT ),
354        ( Name: 'synchronized_io';  CtlType : CTLTYPE_INT ),
355        ( Name: 'timers';  CtlType : CTLTYPE_INT ),
356        ( Name: 'aio_listio_max';  CtlType : CTLTYPE_INT ),
357        ( Name: 'aio_max';  CtlType : CTLTYPE_INT ),
358        ( Name: 'aio_prio_delta_max';  CtlType : CTLTYPE_INT ),
359        ( Name: 'delaytimer_max';  CtlType : CTLTYPE_INT ),
360        ( Name: 'mq_open_max';  CtlType : CTLTYPE_INT ),
361        ( Name: 'pagesize';  CtlType : CTLTYPE_INT ),
362        ( Name: 'rtsig_max';  CtlType : CTLTYPE_INT ),
363        ( Name: 'nsems_max';  CtlType : CTLTYPE_INT ),
364        ( Name: 'sem_value_max';  CtlType : CTLTYPE_INT ),
365        ( Name: 'sigqueue_max';  CtlType : CTLTYPE_INT ),
366        ( Name: 'timer_max';  CtlType : CTLTYPE_INT ));
367
368
369const
370{
371 * Types
372}
373        SOCK_STREAM     = 1;            { stream socket }
374        SOCK_DGRAM      = 2;            { datagram socket }
375        SOCK_RAW        = 3;            { raw-protocol interface }
376        SOCK_RDM        = 4;            { reliably-delivered message }
377        SOCK_SEQPACKET  = 5;            { sequenced packet stream }
378
379{
380 * Address families.
381}
382        AF_UNSPEC       = 0;            { unspecified }
383        AF_LOCAL        = 1;            { local to host (Name:pipes;CtlType: portals) }
384        AF_UNIX         = AF_LOCAL;     { backward compatibility }
385        AF_INET         = 2;            { internetwork: UDP, TCP, etc. }
386        AF_IMPLINK      = 3;            { arpanet imp addresses }
387        AF_PUP          = 4;            { pup protocols: e.g. BSP }
388        AF_CHAOS        = 5;            { mit CHAOS protocols }
389        AF_NS           = 6;            { XEROX NS protocols }
390        AF_ISO          = 7;            { ISO protocols }
391        AF_OSI          = AF_ISO;
392        AF_ECMA         = 8;            { European computer manufacturers }
393        AF_DATAKIT      = 9;            { datakit protocols }
394        AF_CCITT        = 10;           { CCITT protocols, X.25 etc }
395        AF_SNA          = 11;           { IBM SNA }
396        AF_DECnet       = 12;           { DECnet }
397        AF_DLI          = 13;           { DEC Direct data link interface }
398        AF_LAT          = 14;           { LAT }
399        AF_HYLINK       = 15;           { NSC Hyperchannel }
400        AF_APPLETALK    = 16;           { Apple Talk }
401        AF_ROUTE        = 17;           { Internal Routing Protocol }
402        AF_LINK         = 18;           { Link layer interface }
403        pseudo_AF_XTP   = 19;           { eXpress Transfer Protocol (Name:no AF) }
404        AF_COIP         = 20;           { connection-oriented IP, aka ST II }
405        AF_CNT          = 21;           { Computer Network Technology }
406        pseudo_AF_RTIP  = 22;           { Help Identify RTIP packets }
407        AF_IPX          = 23;           { Novell Internet Protocol }
408        AF_SIP          = 24;           { Simple Internet Protocol }
409        pseudo_AF_PIP   = 25;           { Help Identify PIP packets }
410        AF_ISDN         = 26;           { Integrated Services Digital Network}
411        AF_E164         = AF_ISDN;      { CCITT E.164 recommendation }
412        pseudo_AF_KEY   = 27;           { Internal key-management function }
413        AF_INET6        = 28;           { IPv6 }
414        AF_NATM         = 29;           { native ATM access }
415        AF_ATM          = 30;           { ATM }
416        pseudo_AF_HDRCMPLT = 31;        { Used by BPF to not rewrite headers }
417        AF_NETGRAPH     = 32;           { Netgraph sockets }
418        AF_BLUETOOTH    = 33;           { Bluetooth }
419        AF_MPLS         = 34;           { Multi-Protocol Label Switching }
420        AF_IEEE80211    = 35;           { IEEE 802.11 protocol }
421
422        AF_MAX          = 36;
423
424{
425 * Protocol families, same as address families for now.
426}
427
428{
429 * Definitions for network related sysctl, CTL_NET.
430 *
431 * Second level is protocol family.
432 * Third level is protocol number.
433 *
434 * Further levels are defined by the individual families below.
435}
436        NET_MAXID       = AF_MAX;
437
438        CTL_NET_NAMES  : Array[0..33] OF CtlNameRec =  (
439        (Name: '';CtlType: 0 ),
440        (Name: 'unix';CtlType: CTLTYPE_NODE ),
441        (Name: 'inet';CtlType: CTLTYPE_NODE ),
442        (Name: 'implink';CtlType: CTLTYPE_NODE ),
443        (Name: 'pup';CtlType: CTLTYPE_NODE ),
444        (Name: 'chaos';CtlType: CTLTYPE_NODE ),
445        (Name: 'xerox_ns';CtlType: CTLTYPE_NODE ),
446        (Name: 'iso';CtlType: CTLTYPE_NODE ),
447        (Name: 'emca';CtlType: CTLTYPE_NODE ),
448        (Name: 'datakit';CtlType: CTLTYPE_NODE ),
449        (Name: 'ccitt';CtlType: CTLTYPE_NODE ),
450        (Name: 'ibm_sna';CtlType: CTLTYPE_NODE ),
451        (Name: 'decnet';CtlType: CTLTYPE_NODE ),
452        (Name: 'dec_dli';CtlType: CTLTYPE_NODE ),
453        (Name: 'lat';CtlType: CTLTYPE_NODE ),
454        (Name: 'hylink';CtlType: CTLTYPE_NODE ),
455        (Name: 'appletalk';CtlType: CTLTYPE_NODE ),
456        (Name: 'route';CtlType: CTLTYPE_NODE ),
457        (Name: 'link_layer';CtlType: CTLTYPE_NODE ),
458        (Name: 'xtp';CtlType: CTLTYPE_NODE ),
459        (Name: 'coip';CtlType: CTLTYPE_NODE ),
460        (Name: 'cnt';CtlType: CTLTYPE_NODE ),
461        (Name: 'rtip';CtlType: CTLTYPE_NODE ),
462        (Name: 'ipx';CtlType: CTLTYPE_NODE ),
463        (Name: 'sip';CtlType: CTLTYPE_NODE ),
464        (Name: 'pip';CtlType: CTLTYPE_NODE ),
465        (Name: 'isdn';CtlType: CTLTYPE_NODE ),
466        (Name: 'key';CtlType: CTLTYPE_NODE ),
467        (Name: 'inet6';CtlType: CTLTYPE_NODE ),
468        (Name: 'natm';CtlType: CTLTYPE_NODE ),
469        (Name: 'atm';CtlType: CTLTYPE_NODE ),
470        (Name: 'hdrcomplete';CtlType: CTLTYPE_NODE ),
471        (Name: 'netgraph';CtlType: CTLTYPE_NODE ),
472        (Name: 'bluetooth';CtlType: CTLTYPE_NODE ));
473
474{
475 * PF_ROUTE - Routing table
476 *
477 * Three additional levels are defined:
478 *      Fourth: address family, 0 is wildcard
479 *      Fifth: type of info, defined below
480 *      Sixth: flag(Name:s) to mask with for NET_RT_FLAGS
481}
482        NET_RT_DUMP     = 1;            { dump; may limit to a.f. }
483        NET_RT_FLAGS    = 2;            { by flags, e.g. RESOLVING }
484        NET_RT_IFLIST   = 3;            { survey interface list }
485        NET_RT_MAXID    = 4;
486
487        CTL_NET_RT_NAMES  : Array[0..3] OF CtlNameRec =  (
488        (Name: '';CtlType: 0 ),
489        (Name: 'dump';CtlType: CTLTYPE_STRUCT ),
490        (Name: 'flags';CtlType: CTLTYPE_STRUCT ),
491        (Name: 'iflist';CtlType: CTLTYPE_STRUCT ));
492
493{
494 * Possible states of profiling.
495}
496        GMON_PROF_ON    = 0;
497        GMON_PROF_BUSY  = 1;
498        GMON_PROF_ERROR = 2;
499        GMON_PROF_OFF   = 3;
500        GMON_PROF_HIRES = 4;
501
502{
503 * Sysctl definitions for extracting profiling information from the kernel.
504}
505        GPROF_STATE     = 0;    { int: profiling enabling variable }
506        GPROF_COUNT     = 1;    { struct: profile tick count buffer }
507        GPROF_FROMS     = 2;    { struct: from location hash bucket }
508        GPROF_TOS       = 3;    { struct: destination/count structure }
509        GPROF_GMONPARAM = 4;    { struct: profiling parameters (Name:see above) }
510
511{
512 * CTL_VM identifiers
513}
514        VM_METER                = 1;    { struct vmmeter }
515        VM_LOADAVG              = 2;    { struct loadavg }
516        VM_V_FREE_MIN           = 3;    { cnt.v_free_min }
517        VM_V_FREE_TARGET        = 4;    { cnt.v_free_target }
518        VM_V_FREE_RESERVED      = 5;    { cnt.v_free_reserved }
519        VM_V_INACTIVE_TARGET    = 6;    { cnt.v_inactive_target }
520        VM_V_CACHE_MIN          = 7;    { cnt.v_cache_max }
521        VM_V_CACHE_MAX          = 8;    { cnt.v_cache_min }
522        VM_V_PAGEOUT_FREE_MIN   = 9;    { cnt.v_pageout_free_min }
523        VM_PAGEOUT_ALGORITHM    = 10;   { pageout algorithm }
524        VM_SWAPPING_ENABLED     = 11;   { swapping enabled }
525        VM_MAXID                = 12;   { number of valid vm ids }
526
527        CTL_VM_NAMES  : Array[0..11] OF CtlNameRec =  (
528        (Name: '';CtlType: 0 ),
529        (Name: 'vmmeter';CtlType: CTLTYPE_STRUCT ),
530        (Name: 'loadavg';CtlType: CTLTYPE_STRUCT ),
531        (Name: 'v_free_min';CtlType: CTLTYPE_INT ),
532        (Name: 'v_free_target';CtlType: CTLTYPE_INT ),
533        (Name: 'v_free_reserved';CtlType: CTLTYPE_INT ),
534        (Name: 'v_inactive_target';CtlType: CTLTYPE_INT ),
535        (Name: 'v_cache_min';CtlType: CTLTYPE_INT ),
536        (Name: 'v_cache_max';CtlType: CTLTYPE_INT ),
537        (Name: 'v_pageout_free_min';CtlType: CTLTYPE_INT),
538        (Name: 'pageout_algorithm';CtlType: CTLTYPE_INT),
539        (Name: 'swapping_enabled';CtlType: CTLTYPE_INT));
540
541{
542 * Protocols (Name:RFC 1700)
543}
544        IPPROTO_IP              = 0;            { dummy for IP }
545        IPPROTO_HOPOPTS         = 0;            { IP6 hop-by-hop options }
546        IPPROTO_ICMP            = 1;            { control message protocol }
547        IPPROTO_IGMP            = 2;            { group mgmt protocol }
548        IPPROTO_GGP             = 3;            { gateway^2 (Name:deprecated) }
549        IPPROTO_IPV4            = 4;            { IPv4 encapsulation }
550        IPPROTO_IPIP            = IPPROTO_IPV4; { for compatibility }
551        IPPROTO_TCP             = 6;            { tcp }
552        IPPROTO_ST              = 7;            { Stream protocol II }
553        IPPROTO_EGP             = 8;            { exterior gateway protocol }
554        IPPROTO_PIGP            = 9;            { private interior gateway }
555        IPPROTO_RCCMON          = 10;           { BBN RCC Monitoring }
556        IPPROTO_NVPII           = 11;           { network voice protocol}
557        IPPROTO_PUP             = 12;           { pup }
558        IPPROTO_ARGUS           = 13;           { Argus }
559        IPPROTO_EMCON           = 14;           { EMCON }
560        IPPROTO_XNET            = 15;           { Cross Net Debugger }
561        IPPROTO_CHAOS           = 16;           { Chaos}
562        IPPROTO_UDP             = 17;           { user datagram protocol }
563        IPPROTO_MUX             = 18;           { Multiplexing }
564        IPPROTO_MEAS            = 19;           { DCN Measurement Subsystems }
565        IPPROTO_HMP             = 20;           { Host Monitoring }
566        IPPROTO_PRM             = 21;           { Packet Radio Measurement }
567        IPPROTO_IDP             = 22;           { xns idp }
568        IPPROTO_TRUNK1          = 23;           { Trunk-1 }
569        IPPROTO_TRUNK2          = 24;           { Trunk-2 }
570        IPPROTO_LEAF1           = 25;           { Leaf-1 }
571        IPPROTO_LEAF2           = 26;           { Leaf-2 }
572        IPPROTO_RDP             = 27;           { Reliable Data }
573        IPPROTO_IRTP            = 28;           { Reliable Transaction }
574        IPPROTO_TP              = 29;           { tp-4 w/ class negotiation }
575        IPPROTO_BLT             = 30;           { Bulk Data Transfer }
576        IPPROTO_NSP             = 31;           { Network Services }
577        IPPROTO_INP             = 32;           { Merit Internodal }
578        IPPROTO_SEP             = 33;           { Sequential Exchange }
579        IPPROTO_3PC             = 34;           { Third Party Connect }
580        IPPROTO_IDPR            = 35;           { InterDomain Policy Routing }
581        IPPROTO_XTP             = 36;           { XTP }
582        IPPROTO_DDP             = 37;           { Datagram Delivery }
583        IPPROTO_CMTP            = 38;           { Control Message Transport }
584        IPPROTO_TPXX            = 39;           { TP++ Transport }
585        IPPROTO_IL              = 40;           { IL transport protocol }
586        IPPROTO_IPV6            = 41;           { IP6 header }
587        IPPROTO_SDRP            = 42;           { Source Demand Routing }
588        IPPROTO_ROUTING         = 43;           { IP6 routing header }
589        IPPROTO_FRAGMENT        = 44;           { IP6 fragmentation header }
590        IPPROTO_IDRP            = 45;           { InterDomain Routing}
591        IPPROTO_RSVP            = 46;           { resource reservation }
592        IPPROTO_GRE             = 47;           { General Routing Encap. }
593        IPPROTO_MHRP            = 48;           { Mobile Host Routing }
594        IPPROTO_BHA             = 49;           { BHA }
595        IPPROTO_ESP             = 50;           { IP6 Encap Sec. Payload }
596        IPPROTO_AH              = 51;           { IP6 Auth Header }
597        IPPROTO_INLSP           = 52;           { Integ. Net Layer Security }
598        IPPROTO_SWIPE           = 53;           { IP with encryption }
599        IPPROTO_NHRP            = 54;           { Next Hop Resolution }
600{ 55-57: Unassigned }
601        IPPROTO_ICMPV6          = 58;           { ICMP6 }
602        IPPROTO_NONE            = 59;           { IP6 no next header }
603        IPPROTO_DSTOPTS         = 60;           { IP6 destination option }
604        IPPROTO_AHIP            = 61;           { any host internal protocol }
605        IPPROTO_CFTP            = 62;           { CFTP }
606        IPPROTO_HELLO           = 63;           { 'hello' routing protocol }
607        IPPROTO_SATEXPAK        = 64;           { SATNET/Backroom EXPAK }
608        IPPROTO_KRYPTOLAN       = 65;           { Kryptolan }
609        IPPROTO_RVD             = 66;           { Remote Virtual Disk }
610        IPPROTO_IPPC            = 67;           { Pluribus Packet Core }
611        IPPROTO_ADFS            = 68;           { Any distributed FS }
612        IPPROTO_SATMON          = 69;           { Satnet Monitoring }
613        IPPROTO_VISA            = 70;           { VISA Protocol }
614        IPPROTO_IPCV            = 71;           { Packet Core Utility }
615        IPPROTO_CPNX            = 72;           { Comp. Prot. Net. Executive }
616        IPPROTO_CPHB            = 73;           { Comp. Prot. HeartBeat }
617        IPPROTO_WSN             = 74;           { Wang Span Network }
618        IPPROTO_PVP             = 75;           { Packet Video Protocol }
619        IPPROTO_BRSATMON        = 76;           { BackRoom SATNET Monitoring }
620        IPPROTO_ND              = 77;           { Sun net disk proto (Name:temp.) }
621        IPPROTO_WBMON           = 78;           { WIDEBAND Monitoring }
622        IPPROTO_WBEXPAK         = 79;           { WIDEBAND EXPAK }
623        IPPROTO_EON             = 80;           { ISO cnlp }
624        IPPROTO_VMTP            = 81;           { VMTP }
625        IPPROTO_SVMTP           = 82;           { Secure VMTP }
626        IPPROTO_VINES           = 83;           { Banyon VINES }
627        IPPROTO_TTP             = 84;           { TTP }
628        IPPROTO_IGP             = 85;           { NSFNET-IGP }
629        IPPROTO_DGP             = 86;           { dissimilar gateway prot. }
630        IPPROTO_TCF             = 87;           { TCF }
631        IPPROTO_IGRP            = 88;           { Cisco/GXS IGRP }
632        IPPROTO_OSPFIGP         = 89;           { OSPFIGP }
633        IPPROTO_SRPC            = 90;           { Strite RPC protocol }
634        IPPROTO_LARP            = 91;           { Locus Address Resoloution }
635        IPPROTO_MTP             = 92;           { Multicast Transport }
636        IPPROTO_AX25            = 93;           { AX.25 Frames }
637        IPPROTO_IPEIP           = 94;           { IP encapsulated in IP }
638        IPPROTO_MICP            = 95;           { Mobile Int.ing control }
639        IPPROTO_SCCSP           = 96;           { Semaphore Comm. security }
640        IPPROTO_ETHERIP         = 97;           { Ethernet IP encapsulation }
641        IPPROTO_ENCAP           = 98;           { encapsulation header }
642        IPPROTO_APES            = 99;           { any private encr. scheme }
643        IPPROTO_GMTP            = 100;          { GMTP}
644        IPPROTO_IPCOMP          = 108;          { payload compression (Name:IPComp) }
645{ 101-254: Partly Unassigned }
646        IPPROTO_PIM             = 103;          { Protocol Independent Mcast }
647        IPPROTO_PGM             = 113;          { PGM }
648{ 255: Reserved }
649{ BSD Private, local use, namespace incursion }
650        IPPROTO_DIVERT          = 254;          { divert pseudo-protocol }
651        IPPROTO_RAW             = 255;          { raw IP packet }
652        IPPROTO_MAX             = 256;
653
654{ last return value of *_input(Name:);CtlType: meaning 'all job for this pkt is done'.  }
655        IPPROTO_DONE            = 257;
656
657
658{
659 * Options for use with [gs]etsockopt at the IP level.
660 * First word of comment is data type; bool is stored in int.
661}
662        IP_OPTIONS              = 1;    { buf/ip_opts; set/get IP options }
663        IP_HDRINCL              = 2;    { int; header is included with data }
664        IP_TOS                  = 3;    { int; IP type of service and preced. }
665        IP_TTL                  = 4;    { int; IP time to live }
666        IP_RECVOPTS             = 5;    { bool; receive all IP opts w/dgram }
667        IP_RECVRETOPTS          = 6;    { bool; receive IP opts for response }
668        IP_RECVDSTADDR          = 7;    { bool; receive IP dst addr w/dgram }
669        IP_RETOPTS              = 8;    { ip_opts; set/get IP options }
670        IP_MULTICAST_IF         = 9;    { u_char; set/get IP multicast i/f  }
671        IP_MULTICAST_TTL        = 10;   { u_char; set/get IP multicast ttl }
672        IP_MULTICAST_LOOP       = 11;   { u_char; set/get IP multicast loopback }
673        IP_ADD_MEMBERSHIP       = 12;   { ip_mreq; add an IP group membership }
674        IP_DROP_MEMBERSHIP      = 13;   { ip_mreq; drop an IP group membership }
675        IP_MULTICAST_VIF        = 14;   { set/get IP mcast virt. iface }
676        IP_RSVP_ON              = 15;   { enable RSVP in kernel }
677        IP_RSVP_OFF             = 16;   { disable RSVP in kernel }
678        IP_RSVP_VIF_ON          = 17;   { set RSVP per-vif socket }
679        IP_RSVP_VIF_OFF         = 18;   { unset RSVP per-vif socket }
680        IP_PORTRANGE            = 19;   { int; range to choose for unspec port }
681        IP_RECVIF               = 20;   { bool; receive reception if w/dgram }
682{ for IPSEC }
683        IP_IPSEC_POLICY         = 21;   { int; set/get security policy }
684        IP_FAITH                = 22;   { bool; accept FAITH'ed connections }
685
686        IP_FW_ADD               = 50;   { add a firewall rule to chain }
687        IP_FW_DEL               = 51;   { delete a firewall rule from chain }
688        IP_FW_FLUSH             = 52;   { flush firewall rule chain }
689        IP_FW_ZERO              = 53;   { clear single/all firewall counter(Name:s) }
690        IP_FW_GET               = 54;   { get entire firewall rule chain }
691        IP_FW_RESETLOG          = 55;   { reset logging counters }
692
693        IP_DUMMYNET_CONFIGURE   = 60;   { add/configure a dummynet pipe }
694        IP_DUMMYNET_DEL         = 61;   { delete a dummynet pipe from chain }
695        IP_DUMMYNET_FLUSH       = 62;   { flush dummynet }
696        IP_DUMMYNET_GET         = 64;   { get entire dummynet pipes }
697
698        IP_RECVTTL              = 65;   { bool; receive IP TTL }
699        IP_MINTTL               = 66;   { minimum TTL for packet or drop }
700
701{
702 * Defaults and limits for options
703}
704        IP_DEFAULT_MULTICAST_TTL  = 1;  { normally limit m'casts to 1 hop  }
705        IP_DEFAULT_MULTICAST_LOOP = 1;  { normally hear sends if a member  }
706        IP_MAX_MEMBERSHIPS        = 20; { per socket }
707
708{
709 * Argument for IP_PORTRANGE:
710 * - which range to search when port is unspecified at bind(Name:) or connect()
711}
712        IP_PORTRANGE_DEFAULT    = 0;    { default range }
713        IP_PORTRANGE_HIGH       = 1;    { 'high' - request firewall bypass }
714        IP_PORTRANGE_LOW        = 2;    { 'low' - vouchsafe security }
715
716{
717 * Definitions for inet sysctl operations.
718 *
719 * Third level is protocol number.
720 * Fourth level is desired variable within that protocol.
721}
722        IPPROTO_MAXID = (IPPROTO_AH + 1);       { don't list to IPPROTO_MAX }
723
724        CTL_IPPROTO_NAMES  : Array[0..51] OF CtlNameRec =  (
725        (Name: 'ip';CtlType: CTLTYPE_NODE ),
726        (Name: 'icmp';CtlType: CTLTYPE_NODE ),
727        (Name: 'igmp';CtlType: CTLTYPE_NODE ),
728        (Name: 'ggp';CtlType: CTLTYPE_NODE ),
729        (Name: '';CtlType: 0 ),
730        (Name: '';CtlType: 0 ),
731        (Name: 'tcp';CtlType: CTLTYPE_NODE ),
732        (Name: '';CtlType: 0 ),
733        (Name: 'egp';CtlType: CTLTYPE_NODE ),
734        (Name: '';CtlType: 0 ),
735        (Name: '';CtlType: 0 ),
736        (Name: '';CtlType: 0 ),
737        (Name: 'pup';CtlType: CTLTYPE_NODE ),
738        (Name: '';CtlType: 0 ),
739        (Name: '';CtlType: 0 ),
740        (Name: '';CtlType: 0 ),
741        (Name: '';CtlType: 0 ),
742        (Name: 'udp';CtlType: CTLTYPE_NODE ),
743        (Name: '';CtlType: 0 ),
744        (Name: '';CtlType: 0 ),
745        (Name: '';CtlType: 0 ),
746        (Name: '';CtlType: 0 ),
747        (Name: 'idp';CtlType: CTLTYPE_NODE ),
748        (Name: '';CtlType: 0 ),
749        (Name: '';CtlType: 0 ),
750        (Name: '';CtlType: 0 ),
751        (Name: '';CtlType: 0 ),
752        (Name: '';CtlType: 0 ),
753        (Name: '';CtlType: 0 ),
754        (Name: '';CtlType: 0 ),
755        (Name: '';CtlType: 0 ),
756        (Name: '';CtlType: 0 ),
757        (Name: '';CtlType: 0 ),
758        (Name: '';CtlType: 0 ),
759        (Name: '';CtlType: 0 ),
760        (Name: '';CtlType: 0 ),
761        (Name: '';CtlType: 0 ),
762        (Name: '';CtlType: 0 ),
763        (Name: '';CtlType: 0 ),
764        (Name: '';CtlType: 0 ),
765        (Name: '';CtlType: 0 ),
766        (Name: '';CtlType: 0 ),
767        (Name: '';CtlType: 0 ),
768        (Name: '';CtlType: 0 ),
769        (Name: '';CtlType: 0 ),
770        (Name: '';CtlType: 0 ),
771        (Name: '';CtlType: 0 ),
772        (Name: '';CtlType: 0 ),
773        (Name: '';CtlType: 0 ),
774        (Name: '';CtlType: 0 ),
775        (Name: '';CtlType: 0 ),
776        (Name: 'ipsec';CtlType: CTLTYPE_NODE ));
777
778{
779 * Names for IP sysctl objects
780}
781        IPCTL_FORWARDING        = 1;    { act as router }
782        IPCTL_SENDREDIRECTS     = 2;    { may send redirects when forwarding }
783        IPCTL_DEFTTL            = 3;    { default TTL }
784{$ifdef notyettunable}
785        IPCTL_DEFMTU            = 4;    { default MTU }
786{$endif}
787        IPCTL_RTEXPIRE          = 5;    { cloned route expiration time }
788        IPCTL_RTMINEXPIRE       = 6;    { min value for expiration time }
789        IPCTL_RTMAXCACHE        = 7;    { trigger level for dynamic expire }
790        IPCTL_SOURCEROUTE       = 8;    { may perform source routes }
791        IPCTL_DIRECTEDBROADCAST = 9;    { may re-broadcast received packets }
792        IPCTL_INTRQMAXLEN       = 10;   { max length of netisr queue }
793        IPCTL_INTRQDROPS        = 11;   { number of netisr q drops }
794        IPCTL_STATS             = 12;   { ipstat structure }
795        IPCTL_ACCEPTSOURCEROUTE = 13;   { may accept source routed packets }
796        IPCTL_FASTFORWARDING    = 14;   { use fast IP forwarding code }
797        IPCTL_KEEPFAITH         = 15;   { FAITH IPv4->IPv6 translater ctl }
798        IPCTL_GIF_TTL           = 16;   { default TTL for gif encap packet }
799        IPCTL_MAXID             = 17;
800
801        IPCTL_NAMES  : Array[0..14] OF CtlNameRec =  (
802        (Name: '';CtlType: 0 ),
803        (Name: 'forwarding';CtlType: CTLTYPE_INT ),
804        (Name: 'redirect';CtlType: CTLTYPE_INT ),
805        (Name: 'ttl';CtlType: CTLTYPE_INT ),
806        (Name: 'mtu';CtlType: CTLTYPE_INT ),
807        (Name: 'rtexpire';CtlType: CTLTYPE_INT ),
808        (Name: 'rtminexpire';CtlType: CTLTYPE_INT ),
809        (Name: 'rtmaxcache';CtlType: CTLTYPE_INT ),
810        (Name: 'sourceroute';CtlType: CTLTYPE_INT ),
811        (Name: 'directed-broadcast';CtlType: CTLTYPE_INT ),
812        (Name: 'intr-queue-maxlen';CtlType: CTLTYPE_INT ),
813        (Name: 'intr-queue-drops';CtlType: CTLTYPE_INT ),
814        (Name: 'stats';CtlType: CTLTYPE_STRUCT ),
815        (Name: 'accept_sourceroute';CtlType: CTLTYPE_INT ),
816        (Name: 'fastforwarding';CtlType: CTLTYPE_INT ));
817
818{
819 * Names for ICMP sysctl objects
820}
821        ICMPCTL_MASKREPL        = 1;    { allow replies to netmask requests }
822        ICMPCTL_STATS           = 2;    { statistics (Name:read-only) }
823        ICMPCTL_ICMPLIM         = 3;
824        ICMPCTL_MAXID           = 4;
825
826        ICMPCTL_NAMES  : Array[0..3] OF CtlNameRec =  (
827        (Name: '';CtlType: 0 ),
828        (Name: 'maskrepl';CtlType: CTLTYPE_INT ),
829        (Name: 'stats';CtlType: CTLTYPE_STRUCT ),
830        (Name: 'icmplim';CtlType: CTLTYPE_INT ));
831
832{
833 * Names for ICMP sysctl objects
834}
835        ICMPV6CTL_STATS         = 1;
836        ICMPV6CTL_REDIRACCEPT   = 2;    { accept/process redirects }
837        ICMPV6CTL_REDIRTIMEOUT  = 3;    { redirect cache time }
838{$ifdef obsolete}       {obsoleted}
839        ICMPV6CTL_ERRRATELIMIT  = 5;    { ICMPv6 error rate limitation }
840{$endif}
841        ICMPV6CTL_ND6_PRUNE     = 6;
842        ICMPV6CTL_ND6_DELAY     = 8;
843        ICMPV6CTL_ND6_UMAXTRIES = 9;
844        ICMPV6CTL_ND6_MMAXTRIES         = 10;
845        ICMPV6CTL_ND6_USELOOPBACK       = 11;
846//define ICMPV6CTL_ND6_PROXYALL = 12;   obsoleted, do not reuse here
847        ICMPV6CTL_NODEINFO      = 13;
848        ICMPV6CTL_ERRPPSLIMIT   = 14;   { ICMPv6 error pps limitation }
849        ICMPV6CTL_ND6_MAXNUDHINT= 15;
850        ICMPV6CTL_MTUDISC_HIWAT = 16;
851        ICMPV6CTL_MTUDISC_LOWAT = 17;
852        ICMPV6CTL_ND6_DEBUG     = 18;
853        ICMPV6CTL_ND6_DRLIST    = 19;
854        ICMPV6CTL_ND6_PRLIST    = 20;
855        ICMPV6CTL_MAXID         = 21;
856
857        ICMPV6CTL_NAMES  : Array[0..20] OF CtlNameRec =  (
858        (Name: '';CtlType: 0 ),
859        (Name: '';CtlType: 0 ),
860        (Name: 'rediraccept';CtlType: CTLTYPE_INT ),
861        (Name: 'redirtimeout';CtlType: CTLTYPE_INT ),
862        (Name: '';CtlType: 0 ),
863        (Name: '';CtlType: 0 ),
864        (Name: 'nd6_prune';CtlType: CTLTYPE_INT ),
865        (Name: '';CtlType: 0 ),
866        (Name: 'nd6_delay';CtlType: CTLTYPE_INT ),
867        (Name: 'nd6_umaxtries';CtlType: CTLTYPE_INT ),
868        (Name: 'nd6_mmaxtries';CtlType: CTLTYPE_INT ),
869        (Name: 'nd6_useloopback';CtlType: CTLTYPE_INT ),
870        (Name: '';CtlType: 0 ),
871        (Name: 'nodeinfo';CtlType: CTLTYPE_INT ),
872        (Name: 'errppslimit';CtlType: CTLTYPE_INT ),
873        (Name: 'nd6_maxnudhint';CtlType: CTLTYPE_INT ),
874        (Name: 'mtudisc_hiwat';CtlType: CTLTYPE_INT ),
875        (Name: 'mtudisc_lowat';CtlType: CTLTYPE_INT ),
876        (Name: 'nd6_debug';CtlType: CTLTYPE_INT ),
877        (Name: '';CtlType: 0 ),
878        (Name: '';CtlType: 0 ));
879
880
881{
882 * Names for UDP sysctl objects
883}
884        UDPCTL_CHECKSUM         = 1;    { checksum UDP packets }
885        UDPCTL_STATS            = 2;    { statistics (Name:read-only) }
886        UDPCTL_MAXDGRAM         = 3;    { max datagram size }
887        UDPCTL_RECVSPACE        = 4;    { default receive buffer space }
888        UDPCTL_PCBLIST          = 5;    { list of PCBs for UDP sockets }
889        UDPCTL_MAXID            = 6;
890
891        UDPCTL_NAMES  : Array[0..5] OF CtlNameRec =  (
892        (Name: '';CtlType: 0 ),
893        (Name: 'checksum';CtlType: CTLTYPE_INT ),
894        (Name: 'stats';CtlType: CTLTYPE_STRUCT ),
895        (Name: 'maxdgram';CtlType: CTLTYPE_INT ),
896        (Name: 'recvspace';CtlType: CTLTYPE_INT ),
897        (Name: 'pcblist';CtlType: CTLTYPE_STRUCT ));
898
899