Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iproute2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
iproute2
Commits
5a8ba228
Commit
5a8ba228
authored
Dec 13, 2006
by
Stephen Hemminger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change to post 2.6.19 sanitized headers
Signed-off-by:
Stephen Hemminger
<
shemminger@osdl.org
>
parent
a3572a76
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
53 additions
and
654 deletions
+53
-654
include/linux/if_addr.h
include/linux/if_addr.h
+6
-0
include/linux/if_link.h
include/linux/if_link.h
+6
-0
include/linux/ip_tables.h
include/linux/ip_tables.h
+0
-262
include/linux/netfilter_ipv4/ip_tables.h
include/linux/netfilter_ipv4/ip_tables.h
+38
-122
include/linux/rtnetlink.h
include/linux/rtnetlink.h
+2
-0
include/linux/socket.h
include/linux/socket.h
+0
-269
include/linux/xfrm.h
include/linux/xfrm.h
+1
-1
No files found.
include/linux/if_addr.h
View file @
5a8ba228
...
@@ -52,4 +52,10 @@ struct ifa_cacheinfo
...
@@ -52,4 +52,10 @@ struct ifa_cacheinfo
__u32
tstamp
;
/* updated timestamp, hundredths of seconds */
__u32
tstamp
;
/* updated timestamp, hundredths of seconds */
};
};
/* backwards compatibility for userspace */
#ifndef __KERNEL__
#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
#endif
#endif
#endif
include/linux/if_link.h
View file @
5a8ba228
...
@@ -82,6 +82,12 @@ enum
...
@@ -82,6 +82,12 @@ enum
#define IFLA_MAX (__IFLA_MAX - 1)
#define IFLA_MAX (__IFLA_MAX - 1)
/* backwards compatibility for userspace */
#ifndef __KERNEL__
#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
#endif
/* ifi_flags.
/* ifi_flags.
IFF_* flags.
IFF_* flags.
...
...
include/linux/ip_tables.h
deleted
100644 → 0
View file @
a3572a76
/*
* 25-Jul-1998 Major changes to allow for ip chain table
*
* 3-Jan-2000 Named tables to allow packet selection for different uses.
*/
/*
* Format of an IP firewall descriptor
*
* src, dst, src_mask, dst_mask are always stored in network byte order.
* flags are stored in host byte order (of course).
* Port numbers are stored in HOST byte order.
*/
#ifndef _IPTABLES_H
#define _IPTABLES_H
#include <linux/netfilter_ipv4.h>
#include <linux/netfilter/x_tables.h>
#define IPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
#define IPT_TABLE_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
#define ipt_match xt_match
#define ipt_target xt_target
#define ipt_table xt_table
#define ipt_get_revision xt_get_revision
/* Yes, Virginia, you have to zero the padding. */
struct
ipt_ip
{
/* Source and destination IP addr */
struct
in_addr
src
,
dst
;
/* Mask for src and dest IP addr */
struct
in_addr
smsk
,
dmsk
;
char
iniface
[
IFNAMSIZ
],
outiface
[
IFNAMSIZ
];
unsigned
char
iniface_mask
[
IFNAMSIZ
],
outiface_mask
[
IFNAMSIZ
];
/* Protocol, 0 = ANY */
u_int16_t
proto
;
/* Flags word */
u_int8_t
flags
;
/* Inverse flags */
u_int8_t
invflags
;
};
#define ipt_entry_match xt_entry_match
#define ipt_entry_target xt_entry_target
#define ipt_standard_target xt_standard_target
#define ipt_counters xt_counters
/* Values for "flag" field in struct ipt_ip (general ip structure). */
#define IPT_F_FRAG 0x01
/* Set if rule is a fragment rule */
#define IPT_F_GOTO 0x02
/* Set if jump is a goto */
#define IPT_F_MASK 0x03
/* All possible flag bits mask. */
/* Values for "inv" field in struct ipt_ip. */
#define IPT_INV_VIA_IN 0x01
/* Invert the sense of IN IFACE. */
#define IPT_INV_VIA_OUT 0x02
/* Invert the sense of OUT IFACE */
#define IPT_INV_TOS 0x04
/* Invert the sense of TOS. */
#define IPT_INV_SRCIP 0x08
/* Invert the sense of SRC IP. */
#define IPT_INV_DSTIP 0x10
/* Invert the sense of DST OP. */
#define IPT_INV_FRAG 0x20
/* Invert the sense of FRAG. */
#define IPT_INV_PROTO XT_INV_PROTO
#define IPT_INV_MASK 0x7F
/* All possible flag bits mask. */
/* This structure defines each of the firewall rules. Consists of 3
parts which are 1) general IP header stuff 2) match specific
stuff 3) the target to perform if the rule matches */
struct
ipt_entry
{
struct
ipt_ip
ip
;
/* Mark with fields that we care about. */
unsigned
int
nfcache
;
/* Size of ipt_entry + matches */
u_int16_t
target_offset
;
/* Size of ipt_entry + matches + target */
u_int16_t
next_offset
;
/* Back pointer */
unsigned
int
comefrom
;
/* Packet and byte counters. */
struct
xt_counters
counters
;
/* The matches (if any), then the target. */
unsigned
char
elems
[
0
];
};
/*
* New IP firewall options for [gs]etsockopt at the RAW IP level.
* Unlike BSD Linux inherits IP options so you don't have to use a raw
* socket for this. Instead we check rights in the calls.
*
* ATTENTION: check linux/in.h before adding new number here.
*/
#define IPT_BASE_CTL 64
#define IPT_SO_SET_REPLACE (IPT_BASE_CTL)
#define IPT_SO_SET_ADD_COUNTERS (IPT_BASE_CTL + 1)
#define IPT_SO_SET_MAX IPT_SO_SET_ADD_COUNTERS
#define IPT_SO_GET_INFO (IPT_BASE_CTL)
#define IPT_SO_GET_ENTRIES (IPT_BASE_CTL + 1)
#define IPT_SO_GET_REVISION_MATCH (IPT_BASE_CTL + 2)
#define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3)
#define IPT_SO_GET_MAX IPT_SO_GET_REVISION_TARGET
#define IPT_CONTINUE XT_CONTINUE
#define IPT_RETURN XT_RETURN
#include <linux/netfilter/xt_tcpudp.h>
#define ipt_udp xt_udp
#define ipt_tcp xt_tcp
#define IPT_TCP_INV_SRCPT XT_TCP_INV_SRCPT
#define IPT_TCP_INV_DSTPT XT_TCP_INV_DSTPT
#define IPT_TCP_INV_FLAGS XT_TCP_INV_FLAGS
#define IPT_TCP_INV_OPTION XT_TCP_INV_OPTION
#define IPT_TCP_INV_MASK XT_TCP_INV_MASK
#define IPT_UDP_INV_SRCPT XT_UDP_INV_SRCPT
#define IPT_UDP_INV_DSTPT XT_UDP_INV_DSTPT
#define IPT_UDP_INV_MASK XT_UDP_INV_MASK
/* ICMP matching stuff */
struct
ipt_icmp
{
u_int8_t
type
;
/* type to match */
u_int8_t
code
[
2
];
/* range of code */
u_int8_t
invflags
;
/* Inverse flags */
};
/* Values for "inv" field for struct ipt_icmp. */
#define IPT_ICMP_INV 0x01
/* Invert the sense of type/code test */
/* The argument to IPT_SO_GET_INFO */
struct
ipt_getinfo
{
/* Which table: caller fills this in. */
char
name
[
IPT_TABLE_MAXNAMELEN
];
/* Kernel fills these in. */
/* Which hook entry points are valid: bitmask */
unsigned
int
valid_hooks
;
/* Hook entry points: one per netfilter hook. */
unsigned
int
hook_entry
[
NF_IP_NUMHOOKS
];
/* Underflow points. */
unsigned
int
underflow
[
NF_IP_NUMHOOKS
];
/* Number of entries */
unsigned
int
num_entries
;
/* Size of entries. */
unsigned
int
size
;
};
/* The argument to IPT_SO_SET_REPLACE. */
struct
ipt_replace
{
/* Which table. */
char
name
[
IPT_TABLE_MAXNAMELEN
];
/* Which hook entry points are valid: bitmask. You can't
change this. */
unsigned
int
valid_hooks
;
/* Number of entries */
unsigned
int
num_entries
;
/* Total size of new entries */
unsigned
int
size
;
/* Hook entry points. */
unsigned
int
hook_entry
[
NF_IP_NUMHOOKS
];
/* Underflow points. */
unsigned
int
underflow
[
NF_IP_NUMHOOKS
];
/* Information about old entries: */
/* Number of counters (must be equal to current number of entries). */
unsigned
int
num_counters
;
/* The old entries' counters. */
struct
xt_counters
*
counters
;
/* The entries (hang off end: not really an array). */
struct
ipt_entry
entries
[
0
];
};
/* The argument to IPT_SO_ADD_COUNTERS. */
#define ipt_counters_info xt_counters_info
/* The argument to IPT_SO_GET_ENTRIES. */
struct
ipt_get_entries
{
/* Which table: user fills this in. */
char
name
[
IPT_TABLE_MAXNAMELEN
];
/* User fills this in: total entry size. */
unsigned
int
size
;
/* The entries. */
struct
ipt_entry
entrytable
[
0
];
};
/* Standard return verdict, or do jump. */
#define IPT_STANDARD_TARGET XT_STANDARD_TARGET
/* Error verdict. */
#define IPT_ERROR_TARGET XT_ERROR_TARGET
/* Helper functions */
static
__inline__
struct
ipt_entry_target
*
ipt_get_target
(
struct
ipt_entry
*
e
)
{
return
(
void
*
)
e
+
e
->
target_offset
;
}
/* fn returns 0 to continue iteration */
#define IPT_MATCH_ITERATE(e, fn, args...) \
({ \
unsigned int __i; \
int __ret = 0; \
struct ipt_entry_match *__match; \
\
for (__i = sizeof(struct ipt_entry); \
__i < (e)->target_offset; \
__i += __match->u.match_size) { \
__match = (void *)(e) + __i; \
\
__ret = fn(__match , ## args); \
if (__ret != 0) \
break; \
} \
__ret; \
})
/* fn returns 0 to continue iteration */
#define IPT_ENTRY_ITERATE(entries, size, fn, args...) \
({ \
unsigned int __i; \
int __ret = 0; \
struct ipt_entry *__entry; \
\
for (__i = 0; __i < (size); __i += __entry->next_offset) { \
__entry = (void *)(entries) + __i; \
\
__ret = fn(__entry , ## args); \
if (__ret != 0) \
break; \
} \
__ret; \
})
/*
* Main firewall chains definitions and global var's definitions.
*/
#endif
/* _IPTABLES_H */
include/linux/netfilter_ipv4/ip_tables.h
View file @
5a8ba228
...
@@ -17,8 +17,14 @@
...
@@ -17,8 +17,14 @@
#include <linux/netfilter_ipv4.h>
#include <linux/netfilter_ipv4.h>
#define IPT_FUNCTION_MAXNAMELEN 30
#include <linux/netfilter/x_tables.h>
#define IPT_TABLE_MAXNAMELEN 32
#define IPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
#define IPT_TABLE_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
#define ipt_match xt_match
#define ipt_target xt_target
#define ipt_table xt_table
#define ipt_get_revision xt_get_revision
/* Yes, Virginia, you have to zero the padding. */
/* Yes, Virginia, you have to zero the padding. */
struct
ipt_ip
{
struct
ipt_ip
{
...
@@ -38,70 +44,16 @@ struct ipt_ip {
...
@@ -38,70 +44,16 @@ struct ipt_ip {
u_int8_t
invflags
;
u_int8_t
invflags
;
};
};
struct
ipt_entry_match
#define ipt_entry_match xt_entry_match
{
#define ipt_entry_target xt_entry_target
union
{
#define ipt_standard_target xt_standard_target
struct
{
u_int16_t
match_size
;
/* Used by userspace */
char
name
[
IPT_FUNCTION_MAXNAMELEN
-
1
];
u_int8_t
revision
;
}
user
;
struct
{
u_int16_t
match_size
;
/* Used inside the kernel */
struct
ipt_match
*
match
;
}
kernel
;
/* Total length */
u_int16_t
match_size
;
}
u
;
unsigned
char
data
[
0
];
};
struct
ipt_entry_target
{
union
{
struct
{
u_int16_t
target_size
;
/* Used by userspace */
char
name
[
IPT_FUNCTION_MAXNAMELEN
-
1
];
u_int8_t
revision
;
}
user
;
struct
{
u_int16_t
target_size
;
/* Used inside the kernel */
struct
ipt_target
*
target
;
}
kernel
;
/* Total length */
u_int16_t
target_size
;
}
u
;
unsigned
char
data
[
0
];
};
struct
ipt_standard_target
{
struct
ipt_entry_target
target
;
int
verdict
;
};
struct
ipt_counters
#define ipt_counters xt_counters
{
u_int64_t
pcnt
,
bcnt
;
/* Packet and byte counters */
};
/* Values for "flag" field in struct ipt_ip (general ip structure). */
/* Values for "flag" field in struct ipt_ip (general ip structure). */
#define IPT_F_FRAG 0x01
/* Set if rule is a fragment rule */
#define IPT_F_FRAG 0x01
/* Set if rule is a fragment rule */
#define IPT_F_MASK 0x01
/* All possible flag bits mask. */
#define IPT_F_GOTO 0x02
/* Set if jump is a goto */
#define IPT_F_MASK 0x03
/* All possible flag bits mask. */
/* Values for "inv" field in struct ipt_ip. */
/* Values for "inv" field in struct ipt_ip. */
#define IPT_INV_VIA_IN 0x01
/* Invert the sense of IN IFACE. */
#define IPT_INV_VIA_IN 0x01
/* Invert the sense of IN IFACE. */
...
@@ -110,7 +62,7 @@ struct ipt_counters
...
@@ -110,7 +62,7 @@ struct ipt_counters
#define IPT_INV_SRCIP 0x08
/* Invert the sense of SRC IP. */
#define IPT_INV_SRCIP 0x08
/* Invert the sense of SRC IP. */
#define IPT_INV_DSTIP 0x10
/* Invert the sense of DST OP. */
#define IPT_INV_DSTIP 0x10
/* Invert the sense of DST OP. */
#define IPT_INV_FRAG 0x20
/* Invert the sense of FRAG. */
#define IPT_INV_FRAG 0x20
/* Invert the sense of FRAG. */
#define IPT_INV_PROTO
0x40
/* Invert the sense of PROTO. */
#define IPT_INV_PROTO
XT_INV_PROTO
#define IPT_INV_MASK 0x7F
/* All possible flag bits mask. */
#define IPT_INV_MASK 0x7F
/* All possible flag bits mask. */
/* This structure defines each of the firewall rules. Consists of 3
/* This structure defines each of the firewall rules. Consists of 3
...
@@ -132,7 +84,7 @@ struct ipt_entry
...
@@ -132,7 +84,7 @@ struct ipt_entry
unsigned
int
comefrom
;
unsigned
int
comefrom
;
/* Packet and byte counters. */
/* Packet and byte counters. */
struct
ip
t_counters
counters
;
struct
x
t_counters
counters
;
/* The matches (if any), then the target. */
/* The matches (if any), then the target. */
unsigned
char
elems
[
0
];
unsigned
char
elems
[
0
];
...
@@ -141,8 +93,11 @@ struct ipt_entry
...
@@ -141,8 +93,11 @@ struct ipt_entry
/*
/*
* New IP firewall options for [gs]etsockopt at the RAW IP level.
* New IP firewall options for [gs]etsockopt at the RAW IP level.
* Unlike BSD Linux inherits IP options so you don't have to use a raw
* Unlike BSD Linux inherits IP options so you don't have to use a raw
* socket for this. Instead we check rights in the calls. */
* socket for this. Instead we check rights in the calls.
#define IPT_BASE_CTL 64
/* base for firewall socket options */
*
* ATTENTION: check linux/in.h before adding new number here.
*/
#define IPT_BASE_CTL 64
#define IPT_SO_SET_REPLACE (IPT_BASE_CTL)
#define IPT_SO_SET_REPLACE (IPT_BASE_CTL)
#define IPT_SO_SET_ADD_COUNTERS (IPT_BASE_CTL + 1)
#define IPT_SO_SET_ADD_COUNTERS (IPT_BASE_CTL + 1)
...
@@ -154,42 +109,22 @@ struct ipt_entry
...
@@ -154,42 +109,22 @@ struct ipt_entry
#define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3)
#define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3)
#define IPT_SO_GET_MAX IPT_SO_GET_REVISION_TARGET
#define IPT_SO_GET_MAX IPT_SO_GET_REVISION_TARGET
/* CONTINUE verdict for targets */
#define IPT_CONTINUE XT_CONTINUE
#define IPT_
CONTINUE 0xFFFFFFFF
#define IPT_
RETURN XT_RETURN
/* For standard target */
#include <linux/netfilter/xt_tcpudp.h>
#define IPT_RETURN (-NF_MAX_VERDICT - 1)
#define ipt_udp xt_udp
#define ipt_tcp xt_tcp
/* TCP matching stuff */
#define IPT_TCP_INV_SRCPT XT_TCP_INV_SRCPT
struct
ipt_tcp
#define IPT_TCP_INV_DSTPT XT_TCP_INV_DSTPT
{
#define IPT_TCP_INV_FLAGS XT_TCP_INV_FLAGS
u_int16_t
spts
[
2
];
/* Source port range. */
#define IPT_TCP_INV_OPTION XT_TCP_INV_OPTION
u_int16_t
dpts
[
2
];
/* Destination port range. */
#define IPT_TCP_INV_MASK XT_TCP_INV_MASK
u_int8_t
option
;
/* TCP Option iff non-zero*/
u_int8_t
flg_mask
;
/* TCP flags mask byte */
u_int8_t
flg_cmp
;
/* TCP flags compare byte */
u_int8_t
invflags
;
/* Inverse flags */
};
/* Values for "inv" field in struct ipt_tcp. */
#define IPT_UDP_INV_SRCPT XT_UDP_INV_SRCPT
#define IPT_TCP_INV_SRCPT 0x01
/* Invert the sense of source ports. */
#define IPT_UDP_INV_DSTPT XT_UDP_INV_DSTPT
#define IPT_TCP_INV_DSTPT 0x02
/* Invert the sense of dest ports. */
#define IPT_UDP_INV_MASK XT_UDP_INV_MASK
#define IPT_TCP_INV_FLAGS 0x04
/* Invert the sense of TCP flags. */
#define IPT_TCP_INV_OPTION 0x08
/* Invert the sense of option test. */
#define IPT_TCP_INV_MASK 0x0F
/* All possible flags. */
/* UDP matching stuff */
struct
ipt_udp
{
u_int16_t
spts
[
2
];
/* Source port range. */
u_int16_t
dpts
[
2
];
/* Destination port range. */
u_int8_t
invflags
;
/* Inverse flags */
};
/* Values for "invflags" field in struct ipt_udp. */
#define IPT_UDP_INV_SRCPT 0x01
/* Invert the sense of source ports. */
#define IPT_UDP_INV_DSTPT 0x02
/* Invert the sense of dest ports. */
#define IPT_UDP_INV_MASK 0x03
/* All possible flags. */
/* ICMP matching stuff */
/* ICMP matching stuff */
struct
ipt_icmp
struct
ipt_icmp
...
@@ -250,25 +185,15 @@ struct ipt_replace
...
@@ -250,25 +185,15 @@ struct ipt_replace
/* Information about old entries: */
/* Information about old entries: */
/* Number of counters (must be equal to current number of entries). */
/* Number of counters (must be equal to current number of entries). */
unsigned
int
num_counters
;
unsigned
int
num_counters
;
/* The old entries' counters. */
/* The old entries' counters. */
struct
ipt_counters
*
counters
;
struct
xt_counters
*
counters
;
/* The entries (hang off end: not really an array). */
/* The entries (hang off end: not really an array). */
struct
ipt_entry
entries
[
0
];
struct
ipt_entry
entries
[
0
];
};
};
/* The argument to IPT_SO_ADD_COUNTERS. */
/* The argument to IPT_SO_ADD_COUNTERS. */
struct
ipt_counters_info
#define ipt_counters_info xt_counters_info
{
/* Which table. */
char
name
[
IPT_TABLE_MAXNAMELEN
];
unsigned
int
num_counters
;
/* The counters (actually `number' of these). */
struct
ipt_counters
counters
[
0
];
};
/* The argument to IPT_SO_GET_ENTRIES. */
/* The argument to IPT_SO_GET_ENTRIES. */
struct
ipt_get_entries
struct
ipt_get_entries
...
@@ -283,19 +208,10 @@ struct ipt_get_entries
...
@@ -283,19 +208,10 @@ struct ipt_get_entries
struct
ipt_entry
entrytable
[
0
];
struct
ipt_entry
entrytable
[
0
];
};
};
/* The argument to IPT_SO_GET_REVISION_*. Returns highest revision
* kernel supports, if >= revision. */
struct
ipt_get_revision
{
char
name
[
IPT_FUNCTION_MAXNAMELEN
-
1
];
u_int8_t
revision
;
};
/* Standard return verdict, or do jump. */
/* Standard return verdict, or do jump. */
#define IPT_STANDARD_TARGET
""
#define IPT_STANDARD_TARGET
XT_STANDARD_TARGET
/* Error verdict. */
/* Error verdict. */
#define IPT_ERROR_TARGET
"ERROR"
#define IPT_ERROR_TARGET
XT_ERROR_TARGET
/* Helper functions */
/* Helper functions */
static
__inline__
struct
ipt_entry_target
*
static
__inline__
struct
ipt_entry_target
*
...
...
include/linux/rtnetlink.h
View file @
5a8ba228
...
@@ -3,6 +3,8 @@
...
@@ -3,6 +3,8 @@
#include <linux/netlink.h>
#include <linux/netlink.h>
#include <linux/if_link.h>
#include <linux/if_link.h>
#include <linux/if_addr.h>
#include <linux/neighbour.h>
/****
/****
* Routing/neighbour discovery messages.
* Routing/neighbour discovery messages.
...
...
include/linux/socket.h
View file @
5a8ba228
...
@@ -16,273 +16,4 @@ struct __kernel_sockaddr_storage {
...
@@ -16,273 +16,4 @@ struct __kernel_sockaddr_storage {
/* _SS_MAXSIZE value minus size of ss_family */
/* _SS_MAXSIZE value minus size of ss_family */
}
__attribute__
((
aligned
(
_K_SS_ALIGNSIZE
)));
/* force desired alignment */
}
__attribute__
((
aligned
(
_K_SS_ALIGNSIZE
)));
/* force desired alignment */
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
#include <asm/socket.h>
/* arch-dependent defines */
#include <linux/sockios.h>
/* the SIOCxxx I/O controls */
#include <linux/uio.h>
/* iovec support */
#include <linux/types.h>
/* pid_t */
#include <linux/compiler.h>
/* __user */
extern
int
sysctl_somaxconn
;
#ifdef CONFIG_PROC_FS
struct
seq_file
;
extern
void
socket_seq_show
(
struct
seq_file
*
seq
);
#endif
typedef
unsigned
short
sa_family_t
;
/*
* 1003.1g requires sa_family_t and that sa_data is char.
*/
struct
sockaddr
{
sa_family_t
sa_family
;
/* address family, AF_xxx */
char
sa_data
[
14
];
/* 14 bytes of protocol address */
};
struct
linger
{
int
l_onoff
;
/* Linger active */
int
l_linger
;
/* How long to linger for */
};
#define sockaddr_storage __kernel_sockaddr_storage
/*
* As we do 4.4BSD message passing we use a 4.4BSD message passing
* system, not 4.3. Thus msg_accrights(len) are now missing. They
* belong in an obscure libc emulation or the bin.
*/
struct
msghdr
{
void
*
msg_name
;
/* Socket name */
int
msg_namelen
;
/* Length of name */
struct
iovec
*
msg_iov
;
/* Data blocks */
__kernel_size_t
msg_iovlen
;
/* Number of blocks */
void
*
msg_control
;
/* Per protocol magic (eg BSD file descriptor passing) */
__kernel_size_t
msg_controllen
;
/* Length of cmsg list */
unsigned
msg_flags
;
};
/*
* POSIX 1003.1g - ancillary data object information
* Ancillary data consits of a sequence of pairs of
* (cmsghdr, cmsg_data[])
*/
struct
cmsghdr
{
__kernel_size_t
cmsg_len
;
/* data byte count, including hdr */
int
cmsg_level
;
/* originating protocol */
int
cmsg_type
;
/* protocol-specific type */
};
/*
* Ancilliary data object information MACROS
* Table 5-14 of POSIX 1003.1g
*/
#define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg))
#define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg))
#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
#define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
#define __CMSG_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr) ? \
(struct cmsghdr *)(ctl) : \
(struct cmsghdr *)NULL)
#define CMSG_FIRSTHDR(msg) __CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \
(cmsg)->cmsg_len <= (unsigned long) \
((mhdr)->msg_controllen - \
((char *)(cmsg) - (char *)(mhdr)->msg_control)))
/*
* This mess will go away with glibc
*/
#if defined(__GNUC__)
#define __KINLINE static __inline__
#elif defined(__cplusplus)
#define __KINLINE static inline
#else
#define __KINLINE static
#endif
/*
* Get the next cmsg header
*
* PLEASE, do not touch this function. If you think, that it is
* incorrect, grep kernel sources and think about consequences
* before trying to improve it.
*
* Now it always returns valid, not truncated ancillary object
* HEADER. But caller still MUST check, that cmsg->cmsg_len is
* inside range, given by msg->msg_controllen before using
* ancillary object DATA. --ANK (980731)
*/
__KINLINE
struct
cmsghdr
*
__cmsg_nxthdr
(
void
*
__ctl
,
__kernel_size_t
__size
,
struct
cmsghdr
*
__cmsg
)
{
struct
cmsghdr
*
__ptr
;
__ptr
=
(
struct
cmsghdr
*
)(((
unsigned
char
*
)
__cmsg
)
+
CMSG_ALIGN
(
__cmsg
->
cmsg_len
));
if
((
unsigned
long
)((
char
*
)(
__ptr
+
1
)
-
(
char
*
)
__ctl
)
>
__size
)
return
(
struct
cmsghdr
*
)
0
;
return
__ptr
;
}
__KINLINE
struct
cmsghdr
*
cmsg_nxthdr
(
struct
msghdr
*
__msg
,
struct
cmsghdr
*
__cmsg
)
{
return
__cmsg_nxthdr
(
__msg
->
msg_control
,
__msg
->
msg_controllen
,
__cmsg
);
}
/* "Socket"-level control message types: */
#define SCM_RIGHTS 0x01
/* rw: access rights (array of int) */
#define SCM_CREDENTIALS 0x02
/* rw: struct ucred */
#define SCM_SECURITY 0x03
/* rw: security label */
struct
ucred
{
__u32
pid
;
__u32
uid
;
__u32
gid
;
};
/* Supported address families. */
#define AF_UNSPEC 0
#define AF_UNIX 1
/* Unix domain sockets */
#define AF_LOCAL 1
/* POSIX name for AF_UNIX */
#define AF_INET 2
/* Internet IP Protocol */
#define AF_AX25 3
/* Amateur Radio AX.25 */
#define AF_IPX 4
/* Novell IPX */
#define AF_APPLETALK 5
/* AppleTalk DDP */
#define AF_NETROM 6
/* Amateur Radio NET/ROM */
#define AF_BRIDGE 7
/* Multiprotocol bridge */
#define AF_ATMPVC 8
/* ATM PVCs */
#define AF_X25 9
/* Reserved for X.25 project */
#define AF_INET6 10
/* IP version 6 */
#define AF_ROSE 11
/* Amateur Radio X.25 PLP */
#define AF_DECnet 12
/* Reserved for DECnet project */
#define AF_NETBEUI 13
/* Reserved for 802.2LLC project*/
#define AF_SECURITY 14
/* Security callback pseudo AF */
#define AF_KEY 15
/* PF_KEY key management API */
#define AF_NETLINK 16
#define AF_ROUTE AF_NETLINK
/* Alias to emulate 4.4BSD */
#define AF_PACKET 17
/* Packet family */
#define AF_ASH 18
/* Ash */
#define AF_ECONET 19
/* Acorn Econet */
#define AF_ATMSVC 20
/* ATM SVCs */
#define AF_SNA 22
/* Linux SNA Project (nutters!) */
#define AF_IRDA 23
/* IRDA sockets */
#define AF_PPPOX 24
/* PPPoX sockets */
#define AF_WANPIPE 25
/* Wanpipe API Sockets */
#define AF_LLC 26
/* Linux LLC */
#define AF_TIPC 30
/* TIPC sockets */
#define AF_BLUETOOTH 31
/* Bluetooth sockets */
#define AF_MAX 32
/* For now.. */
/* Protocol families, same as address families. */
#define PF_UNSPEC AF_UNSPEC
#define PF_UNIX AF_UNIX
#define PF_LOCAL AF_LOCAL
#define PF_INET AF_INET
#define PF_AX25 AF_AX25
#define PF_IPX AF_IPX
#define PF_APPLETALK AF_APPLETALK
#define PF_NETROM AF_NETROM
#define PF_BRIDGE AF_BRIDGE
#define PF_ATMPVC AF_ATMPVC
#define PF_X25 AF_X25
#define PF_INET6 AF_INET6
#define PF_ROSE AF_ROSE
#define PF_DECnet AF_DECnet
#define PF_NETBEUI AF_NETBEUI
#define PF_SECURITY AF_SECURITY
#define PF_KEY AF_KEY
#define PF_NETLINK AF_NETLINK
#define PF_ROUTE AF_ROUTE
#define PF_PACKET AF_PACKET
#define PF_ASH AF_ASH
#define PF_ECONET AF_ECONET
#define PF_ATMSVC AF_ATMSVC
#define PF_SNA AF_SNA
#define PF_IRDA AF_IRDA
#define PF_PPPOX AF_PPPOX
#define PF_WANPIPE AF_WANPIPE
#define PF_LLC AF_LLC
#define PF_TIPC AF_TIPC
#define PF_BLUETOOTH AF_BLUETOOTH
#define PF_MAX AF_MAX
/* Maximum queue length specifiable by listen. */
#define SOMAXCONN 128
/* Flags we can use with send/ and recv.
Added those for 1003.1g not all are supported yet
*/
#define MSG_OOB 1
#define MSG_PEEK 2
#define MSG_DONTROUTE 4
#define MSG_TRYHARD 4
/* Synonym for MSG_DONTROUTE for DECnet */
#define MSG_CTRUNC 8
#define MSG_PROBE 0x10
/* Do not send. Only probe path f.e. for MTU */
#define MSG_TRUNC 0x20
#define MSG_DONTWAIT 0x40
/* Nonblocking io */
#define MSG_EOR 0x80
/* End of record */
#define MSG_WAITALL 0x100
/* Wait for a full request */
#define MSG_FIN 0x200
#define MSG_SYN 0x400
#define MSG_CONFIRM 0x800
/* Confirm path validity */
#define MSG_RST 0x1000
#define MSG_ERRQUEUE 0x2000
/* Fetch message from error queue */
#define MSG_NOSIGNAL 0x4000
/* Do not generate SIGPIPE */
#define MSG_MORE 0x8000
/* Sender will send more */
#define MSG_EOF MSG_FIN
#if defined(CONFIG_COMPAT)
#define MSG_CMSG_COMPAT 0x80000000
/* This message needs 32 bit fixups */
#else
#define MSG_CMSG_COMPAT 0
/* We never have 32 bit fixups */
#endif
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
#define SOL_IP 0
/* #define SOL_ICMP 1 No-no-no! Due to Linux :-) we cannot use SOL_ICMP=1 */
#define SOL_TCP 6
#define SOL_UDP 17
#define SOL_IPV6 41
#define SOL_ICMPV6 58
#define SOL_SCTP 132
#define SOL_UDPLITE 136
/* UDP-Lite (RFC 3828) */
#define SOL_RAW 255
#define SOL_IPX 256
#define SOL_AX25 257
#define SOL_ATALK 258
#define SOL_NETROM 259
#define SOL_ROSE 260
#define SOL_DECNET 261
#define SOL_X25 262
#define SOL_PACKET 263
#define SOL_ATM 264
/* ATM layer (cell level) */
#define SOL_AAL 265
/* ATM Adaption Layer (packet level) */
#define SOL_IRDA 266
#define SOL_NETBEUI 267
#define SOL_LLC 268
#define SOL_DCCP 269
#define SOL_NETLINK 270
#define SOL_TIPC 271
/* IPX options */
#define IPX_TYPE 1
#endif
/* not kernel and not glibc */
#endif
/* _LINUX_SOCKET_H */
#endif
/* _LINUX_SOCKET_H */
include/linux/xfrm.h
View file @
5a8ba228
...
@@ -356,7 +356,7 @@ struct xfrm_user_report {
...
@@ -356,7 +356,7 @@ struct xfrm_user_report {
#define XFRMGRP_EXPIRE 2
#define XFRMGRP_EXPIRE 2
#define XFRMGRP_SA 4
#define XFRMGRP_SA 4
#define XFRMGRP_POLICY 8
#define XFRMGRP_POLICY 8
#define XFRMGRP_REPORT 0x
1
0
#define XFRMGRP_REPORT 0x
2
0
enum
xfrm_nlgroups
{
enum
xfrm_nlgroups
{
XFRMNLGRP_NONE
,
XFRMNLGRP_NONE
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment