2006-08-08 16:33:33 +04:00
|
|
|
/*
|
* Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-28 21:38:23 +04:00
|
|
|
* Copyright 2002-2010, Haiku Inc. All Rights Reserved.
|
2006-08-08 16:33:33 +04:00
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
|
|
|
#ifndef _SYS_SOCKIO_H
|
|
|
|
#define _SYS_SOCKIO_H
|
|
|
|
|
|
|
|
|
2010-08-03 19:51:54 +04:00
|
|
|
/*! Socket I/O control codes, usually via struct ifreq, most of them should
|
|
|
|
be compatible with the BSDs.
|
|
|
|
*/
|
2006-08-08 16:33:33 +04:00
|
|
|
|
|
|
|
|
2010-07-29 13:43:08 +04:00
|
|
|
#define SIOCADDRT 8900 /* add route */
|
|
|
|
#define SIOCDELRT 8901 /* delete route */
|
|
|
|
#define SIOCSIFADDR 8902 /* set interface address */
|
|
|
|
#define SIOCGIFADDR 8903 /* get interface address */
|
|
|
|
#define SIOCSIFDSTADDR 8904 /* set point-to-point address */
|
|
|
|
#define SIOCGIFDSTADDR 8905 /* get point-to-point address */
|
|
|
|
#define SIOCSIFFLAGS 8906 /* set interface flags */
|
|
|
|
#define SIOCGIFFLAGS 8907 /* get interface flags */
|
|
|
|
#define SIOCGIFBRDADDR 8908 /* get broadcast address */
|
|
|
|
#define SIOCSIFBRDADDR 8909 /* set broadcast address */
|
|
|
|
#define SIOCGIFCOUNT 8910 /* count interfaces */
|
|
|
|
#define SIOCGIFCONF 8911 /* get interface list */
|
|
|
|
#define SIOCGIFINDEX 8912 /* interface name -> index */
|
|
|
|
#define SIOCGIFNAME 8913 /* interface index -> name */
|
|
|
|
#define SIOCGIFNETMASK 8914 /* get net address mask */
|
|
|
|
#define SIOCSIFNETMASK 8915 /* set net address mask */
|
|
|
|
#define SIOCGIFMETRIC 8916 /* get interface metric */
|
|
|
|
#define SIOCSIFMETRIC 8917 /* set interface metric */
|
|
|
|
#define SIOCDIFADDR 8918 /* delete interface address */
|
|
|
|
#define SIOCAIFADDR 8919
|
|
|
|
/* configure interface alias, ifaliasreq */
|
|
|
|
#define SIOCADDMULTI 8920 /* add multicast address */
|
|
|
|
#define SIOCDELMULTI 8921 /* delete multicast address */
|
|
|
|
#define SIOCGIFMTU 8922 /* get interface MTU */
|
|
|
|
#define SIOCSIFMTU 8923 /* set interface MTU */
|
|
|
|
#define SIOCSIFMEDIA 8924 /* set net media */
|
|
|
|
#define SIOCGIFMEDIA 8925 /* get net media */
|
2006-08-08 16:33:33 +04:00
|
|
|
|
2010-07-29 13:43:08 +04:00
|
|
|
#define SIOCGRTSIZE 8926 /* get route table size */
|
|
|
|
#define SIOCGRTTABLE 8927 /* get route table */
|
|
|
|
#define SIOCGETRT 8928
|
|
|
|
/* get route information for destination */
|
2006-08-08 16:33:33 +04:00
|
|
|
|
2010-07-29 13:43:08 +04:00
|
|
|
#define SIOCGIFSTATS 8929 /* get interface stats */
|
|
|
|
#define SIOCGIFTYPE 8931 /* get interface type */
|
2006-08-08 16:33:33 +04:00
|
|
|
|
2010-07-29 13:43:08 +04:00
|
|
|
#define SIOCSPACKETCAP 8932
|
|
|
|
/* Start capturing packets on an interface */
|
|
|
|
#define SIOCCPACKETCAP 8933
|
|
|
|
/* Stop capturing packets on an interface */
|
2009-12-10 14:11:03 +03:00
|
|
|
|
2010-07-29 13:43:08 +04:00
|
|
|
#define SIOCSHIWAT 8934 /* set high watermark */
|
|
|
|
#define SIOCGHIWAT 8935 /* get high watermark */
|
|
|
|
#define SIOCSLOWAT 8936 /* set low watermark */
|
|
|
|
#define SIOCGLOWAT 8937 /* get low watermark */
|
|
|
|
#define SIOCATMARK 8938 /* at out-of-band mark? */
|
|
|
|
#define SIOCSPGRP 8939 /* set process group */
|
|
|
|
#define SIOCGPGRP 8940 /* get process group */
|
|
|
|
|
|
|
|
#define SIOCGPRIVATE_0 8941 /* device private 0 */
|
|
|
|
#define SIOCGPRIVATE_1 8942 /* device private 1 */
|
|
|
|
#define SIOCSDRVSPEC 8943 /* set driver-specific parameters */
|
|
|
|
#define SIOCGDRVSPEC 8944 /* get driver-specific parameters */
|
|
|
|
|
|
|
|
#define SIOCSIFGENERIC 8945 /* generic IF set op */
|
|
|
|
#define SIOCGIFGENERIC 8946 /* generic IF get op */
|
|
|
|
|
2010-08-03 19:51:54 +04:00
|
|
|
/* Haiku specific extensions */
|
|
|
|
#define B_SOCKET_REMOVE_ALIAS 8918 /* synonym for SIOCDIFADDR */
|
|
|
|
#define B_SOCKET_ADD_ALIAS 8919 /* synonym for SIOCAIFADDR */
|
|
|
|
#define B_SOCKET_SET_ALIAS 8947 /* set interface alias, ifaliasreq */
|
|
|
|
#define B_SOCKET_GET_ALIAS 8948 /* get interface alias, ifaliasreq */
|
|
|
|
#define B_SOCKET_COUNT_ALIASES 8949 /* count interface aliases */
|
2010-07-29 13:43:08 +04:00
|
|
|
|
|
|
|
#define SIOCEND 9000 /* SIOCEND >= highest SIOC* */
|
2009-12-10 18:46:37 +03:00
|
|
|
|
2009-12-10 14:11:03 +03:00
|
|
|
|
2007-04-01 16:06:16 +04:00
|
|
|
#endif /* _SYS_SOCKIO_H */
|