summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Roovers <jer@gentoo.org>2017-01-17 17:19:23 +0100
committerJeroen Roovers <jer@gentoo.org>2017-01-17 17:19:51 +0100
commit239b44feaeef0ea35517d314d8a6a861d009b177 (patch)
treed43270dcbf3064f14e958f415083c5a950907877 /dev-libs/libnl
parentsys-kernel/genkernel-next: Cleanup, drop live support (diff)
downloadgentoo-239b44feaeef0ea35517d314d8a6a861d009b177.tar.gz
gentoo-239b44feaeef0ea35517d314d8a6a861d009b177.tar.bz2
gentoo-239b44feaeef0ea35517d314d8a6a861d009b177.zip
dev-libs/libnl: Add in6.h instead of dropping the include (bug #604190).
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'dev-libs/libnl')
-rw-r--r--dev-libs/libnl/files/libnl-3.2.28-in6.patch307
1 files changed, 295 insertions, 12 deletions
diff --git a/dev-libs/libnl/files/libnl-3.2.28-in6.patch b/dev-libs/libnl/files/libnl-3.2.28-in6.patch
index 5dcf6ae40ccf..e8c7291d9bc9 100644
--- a/dev-libs/libnl/files/libnl-3.2.28-in6.patch
+++ b/dev-libs/libnl/files/libnl-3.2.28-in6.patch
@@ -1,12 +1,295 @@
-https://github.com/thom311/libnl/pull/121
-
---- a/include/linux-private/linux/if_bridge.h
-+++ b/include/linux-private/linux/if_bridge.h
-@@ -15,7 +15,6 @@
-
- #include <linux/types.h>
- #include <linux/if_ether.h>
--#include <linux/in6.h>
-
- #define SYSFS_BRIDGE_ATTR "bridge"
- #define SYSFS_BRIDGE_FDB "brforward"
+--- a/dev/null
++++ b/include/linux-private/linux/in6.h
+@@ -0,0 +1,292 @@
++/*
++ * Types and definitions for AF_INET6
++ * Linux INET6 implementation
++ *
++ * Authors:
++ * Pedro Roque <roque@di.fc.ul.pt>
++ *
++ * Sources:
++ * IPv6 Program Interfaces for BSD Systems
++ * <draft-ietf-ipngwg-bsd-api-05.txt>
++ *
++ * Advanced Sockets API for IPv6
++ * <draft-stevens-advanced-api-00.txt>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++
++#ifndef _LINUX_IN6_H
++#define _LINUX_IN6_H
++
++#include <linux/types.h>
++
++/*
++ * IPv6 address structure
++ */
++
++#if __UAPI_DEF_IN6_ADDR
++struct in6_addr {
++ union {
++ __u8 u6_addr8[16];
++#if __UAPI_DEF_IN6_ADDR_ALT
++ __be16 u6_addr16[8];
++ __be32 u6_addr32[4];
++#endif
++ } in6_u;
++#define s6_addr in6_u.u6_addr8
++#if __UAPI_DEF_IN6_ADDR_ALT
++#define s6_addr16 in6_u.u6_addr16
++#define s6_addr32 in6_u.u6_addr32
++#endif
++};
++#endif /* __UAPI_DEF_IN6_ADDR */
++
++#if __UAPI_DEF_SOCKADDR_IN6
++struct sockaddr_in6 {
++ unsigned short int sin6_family; /* AF_INET6 */
++ __be16 sin6_port; /* Transport layer port # */
++ __be32 sin6_flowinfo; /* IPv6 flow information */
++ struct in6_addr sin6_addr; /* IPv6 address */
++ __u32 sin6_scope_id; /* scope id (new in RFC2553) */
++};
++#endif /* __UAPI_DEF_SOCKADDR_IN6 */
++
++#if __UAPI_DEF_IPV6_MREQ
++struct ipv6_mreq {
++ /* IPv6 multicast address of group */
++ struct in6_addr ipv6mr_multiaddr;
++
++ /* local IPv6 address of interface */
++ int ipv6mr_ifindex;
++};
++#endif /* __UAPI_DEF_IVP6_MREQ */
++
++#define ipv6mr_acaddr ipv6mr_multiaddr
++
++struct in6_flowlabel_req {
++ struct in6_addr flr_dst;
++ __be32 flr_label;
++ __u8 flr_action;
++ __u8 flr_share;
++ __u16 flr_flags;
++ __u16 flr_expires;
++ __u16 flr_linger;
++ __u32 __flr_pad;
++ /* Options in format of IPV6_PKTOPTIONS */
++};
++
++#define IPV6_FL_A_GET 0
++#define IPV6_FL_A_PUT 1
++#define IPV6_FL_A_RENEW 2
++
++#define IPV6_FL_F_CREATE 1
++#define IPV6_FL_F_EXCL 2
++#define IPV6_FL_F_REFLECT 4
++#define IPV6_FL_F_REMOTE 8
++
++#define IPV6_FL_S_NONE 0
++#define IPV6_FL_S_EXCL 1
++#define IPV6_FL_S_PROCESS 2
++#define IPV6_FL_S_USER 3
++#define IPV6_FL_S_ANY 255
++
++
++/*
++ * Bitmask constant declarations to help applications select out the
++ * flow label and priority fields.
++ *
++ * Note that this are in host byte order while the flowinfo field of
++ * sockaddr_in6 is in network byte order.
++ */
++
++#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
++#define IPV6_FLOWINFO_PRIORITY 0x0ff00000
++
++/* These definitions are obsolete */
++#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
++#define IPV6_PRIORITY_FILLER 0x0100
++#define IPV6_PRIORITY_UNATTENDED 0x0200
++#define IPV6_PRIORITY_RESERVED1 0x0300
++#define IPV6_PRIORITY_BULK 0x0400
++#define IPV6_PRIORITY_RESERVED2 0x0500
++#define IPV6_PRIORITY_INTERACTIVE 0x0600
++#define IPV6_PRIORITY_CONTROL 0x0700
++#define IPV6_PRIORITY_8 0x0800
++#define IPV6_PRIORITY_9 0x0900
++#define IPV6_PRIORITY_10 0x0a00
++#define IPV6_PRIORITY_11 0x0b00
++#define IPV6_PRIORITY_12 0x0c00
++#define IPV6_PRIORITY_13 0x0d00
++#define IPV6_PRIORITY_14 0x0e00
++#define IPV6_PRIORITY_15 0x0f00
++
++/*
++ * IPV6 extension headers
++ */
++#if __UAPI_DEF_IPPROTO_V6
++#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
++#define IPPROTO_ROUTING 43 /* IPv6 routing header */
++#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
++#define IPPROTO_ICMPV6 58 /* ICMPv6 */
++#define IPPROTO_NONE 59 /* IPv6 no next header */
++#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
++#define IPPROTO_MH 135 /* IPv6 mobility header */
++#endif /* __UAPI_DEF_IPPROTO_V6 */
++
++/*
++ * IPv6 TLV options.
++ */
++#define IPV6_TLV_PAD1 0
++#define IPV6_TLV_PADN 1
++#define IPV6_TLV_ROUTERALERT 5
++#define IPV6_TLV_JUMBO 194
++#define IPV6_TLV_HAO 201 /* home address option */
++
++/*
++ * IPV6 socket options
++ */
++#if __UAPI_DEF_IPV6_OPTIONS
++#define IPV6_ADDRFORM 1
++#define IPV6_2292PKTINFO 2
++#define IPV6_2292HOPOPTS 3
++#define IPV6_2292DSTOPTS 4
++#define IPV6_2292RTHDR 5
++#define IPV6_2292PKTOPTIONS 6
++#define IPV6_CHECKSUM 7
++#define IPV6_2292HOPLIMIT 8
++#define IPV6_NEXTHOP 9
++#define IPV6_AUTHHDR 10 /* obsolete */
++#define IPV6_FLOWINFO 11
++
++#define IPV6_UNICAST_HOPS 16
++#define IPV6_MULTICAST_IF 17
++#define IPV6_MULTICAST_HOPS 18
++#define IPV6_MULTICAST_LOOP 19
++#define IPV6_ADD_MEMBERSHIP 20
++#define IPV6_DROP_MEMBERSHIP 21
++#define IPV6_ROUTER_ALERT 22
++#define IPV6_MTU_DISCOVER 23
++#define IPV6_MTU 24
++#define IPV6_RECVERR 25
++#define IPV6_V6ONLY 26
++#define IPV6_JOIN_ANYCAST 27
++#define IPV6_LEAVE_ANYCAST 28
++
++/* IPV6_MTU_DISCOVER values */
++#define IPV6_PMTUDISC_DONT 0
++#define IPV6_PMTUDISC_WANT 1
++#define IPV6_PMTUDISC_DO 2
++#define IPV6_PMTUDISC_PROBE 3
++/* same as IPV6_PMTUDISC_PROBE, provided for symetry with IPv4
++ * also see comments on IP_PMTUDISC_INTERFACE
++ */
++#define IPV6_PMTUDISC_INTERFACE 4
++/* weaker version of IPV6_PMTUDISC_INTERFACE, which allows packets to
++ * get fragmented if they exceed the interface mtu
++ */
++#define IPV6_PMTUDISC_OMIT 5
++
++/* Flowlabel */
++#define IPV6_FLOWLABEL_MGR 32
++#define IPV6_FLOWINFO_SEND 33
++
++#define IPV6_IPSEC_POLICY 34
++#define IPV6_XFRM_POLICY 35
++#endif
++
++/*
++ * Multicast:
++ * Following socket options are shared between IPv4 and IPv6.
++ *
++ * MCAST_JOIN_GROUP 42
++ * MCAST_BLOCK_SOURCE 43
++ * MCAST_UNBLOCK_SOURCE 44
++ * MCAST_LEAVE_GROUP 45
++ * MCAST_JOIN_SOURCE_GROUP 46
++ * MCAST_LEAVE_SOURCE_GROUP 47
++ * MCAST_MSFILTER 48
++ */
++
++/*
++ * Advanced API (RFC3542) (1)
++ *
++ * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c.
++ */
++
++#define IPV6_RECVPKTINFO 49
++#define IPV6_PKTINFO 50
++#define IPV6_RECVHOPLIMIT 51
++#define IPV6_HOPLIMIT 52
++#define IPV6_RECVHOPOPTS 53
++#define IPV6_HOPOPTS 54
++#define IPV6_RTHDRDSTOPTS 55
++#define IPV6_RECVRTHDR 56
++#define IPV6_RTHDR 57
++#define IPV6_RECVDSTOPTS 58
++#define IPV6_DSTOPTS 59
++#define IPV6_RECVPATHMTU 60
++#define IPV6_PATHMTU 61
++#define IPV6_DONTFRAG 62
++#if 0 /* not yet */
++#define IPV6_USE_MIN_MTU 63
++#endif
++
++/*
++ * Netfilter (1)
++ *
++ * Following socket options are used in ip6_tables;
++ * see include/linux/netfilter_ipv6/ip6_tables.h.
++ *
++ * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO 64
++ * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES 65
++ */
++
++/*
++ * Advanced API (RFC3542) (2)
++ */
++#define IPV6_RECVTCLASS 66
++#define IPV6_TCLASS 67
++
++/*
++ * Netfilter (2)
++ *
++ * Following socket options are used in ip6_tables;
++ * see include/linux/netfilter_ipv6/ip6_tables.h.
++ *
++ * IP6T_SO_GET_REVISION_MATCH 68
++ * IP6T_SO_GET_REVISION_TARGET 69
++ * IP6T_SO_ORIGINAL_DST 80
++ */
++
++#define IPV6_AUTOFLOWLABEL 70
++/* RFC5014: Source address selection */
++#define IPV6_ADDR_PREFERENCES 72
++
++#define IPV6_PREFER_SRC_TMP 0x0001
++#define IPV6_PREFER_SRC_PUBLIC 0x0002
++#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
++#define IPV6_PREFER_SRC_COA 0x0004
++#define IPV6_PREFER_SRC_HOME 0x0400
++#define IPV6_PREFER_SRC_CGA 0x0008
++#define IPV6_PREFER_SRC_NONCGA 0x0800
++
++/* RFC5082: Generalized Ttl Security Mechanism */
++#define IPV6_MINHOPCOUNT 73
++
++#define IPV6_ORIGDSTADDR 74
++#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
++#define IPV6_TRANSPARENT 75
++#define IPV6_UNICAST_IF 76
++
++/*
++ * Multicast Routing:
++ * see include/uapi/linux/mroute6.h.
++ *
++ * MRT6_BASE 200
++ * ...
++ * MRT6_MAX
++ */
++#endif /* _LINUX_IN6_H */