Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
ipv6.h File Reference
#include <linux/ipv6.h>
#include <linux/hardirq.h>
#include <net/if_inet6.h>
#include <net/ndisc.h>
#include <net/flow.h>
#include <net/snmp.h>
#include <net/sock.h>

Go to the source code of this file.

Data Structures

struct  frag_hdr
 
struct  ip6_ra_chain
 
struct  ipv6_txoptions
 
struct  ip6_flowlabel
 
struct  ipv6_fl_socklist
 
struct  ip6_create_arg
 
struct  frag_queue
 

Macros

#define SIN6_LEN_RFC2133   24
 
#define IPV6_MAXPLEN   65535
 
#define NEXTHDR_HOP   0 /* Hop-by-hop option header. */
 
#define NEXTHDR_TCP   6 /* TCP segment. */
 
#define NEXTHDR_UDP   17 /* UDP message. */
 
#define NEXTHDR_IPV6   41 /* IPv6 in IPv6 */
 
#define NEXTHDR_ROUTING   43 /* Routing header. */
 
#define NEXTHDR_FRAGMENT   44 /* Fragmentation/reassembly header. */
 
#define NEXTHDR_GRE   47 /* GRE header. */
 
#define NEXTHDR_ESP   50 /* Encapsulating security payload. */
 
#define NEXTHDR_AUTH   51 /* Authentication header. */
 
#define NEXTHDR_ICMP   58 /* ICMP for IPv6. */
 
#define NEXTHDR_NONE   59 /* No next header */
 
#define NEXTHDR_DEST   60 /* Destination options header. */
 
#define NEXTHDR_MOBILITY   135 /* Mobility header. */
 
#define NEXTHDR_MAX   255
 
#define IPV6_DEFAULT_HOPLIMIT   64
 
#define IPV6_DEFAULT_MCASTHOPS   1
 
#define IPV6_ADDR_ANY   0x0000U
 
#define IPV6_ADDR_UNICAST   0x0001U
 
#define IPV6_ADDR_MULTICAST   0x0002U
 
#define IPV6_ADDR_LOOPBACK   0x0010U
 
#define IPV6_ADDR_LINKLOCAL   0x0020U
 
#define IPV6_ADDR_SITELOCAL   0x0040U
 
#define IPV6_ADDR_COMPATv4   0x0080U
 
#define IPV6_ADDR_SCOPE_MASK   0x00f0U
 
#define IPV6_ADDR_MAPPED   0x1000U
 
#define IPV6_ADDR_MC_SCOPE(a)   ((a)->s6_addr[1] & 0x0f) /* nonstandard */
 
#define __IPV6_ADDR_SCOPE_INVALID   -1
 
#define IPV6_ADDR_SCOPE_NODELOCAL   0x01
 
#define IPV6_ADDR_SCOPE_LINKLOCAL   0x02
 
#define IPV6_ADDR_SCOPE_SITELOCAL   0x05
 
#define IPV6_ADDR_SCOPE_ORGLOCAL   0x08
 
#define IPV6_ADDR_SCOPE_GLOBAL   0x0e
 
#define IPV6_ADDR_MC_FLAG_TRANSIENT(a)   ((a)->s6_addr[1] & 0x10)
 
#define IPV6_ADDR_MC_FLAG_PREFIX(a)   ((a)->s6_addr[1] & 0x20)
 
#define IPV6_ADDR_MC_FLAG_RENDEZVOUS(a)   ((a)->s6_addr[1] & 0x40)
 
#define IP6_MF   0x0001
 
#define _DEVINC(net, statname, modifier, idev, field)
 
#define _DEVINCATOMIC(net, statname, modifier, idev, field)
 
#define _DEVINC_ATOMIC_ATOMIC(net, statname, idev, field)
 
#define _DEVADD(net, statname, modifier, idev, field, val)
 
#define _DEVUPD(net, statname, modifier, idev, field, val)
 
#define IP6_INC_STATS(net, idev, field)   _DEVINC(net, ipv6, 64, idev, field)
 
#define IP6_INC_STATS_BH(net, idev, field)   _DEVINC(net, ipv6, 64_BH, idev, field)
 
#define IP6_ADD_STATS(net, idev, field, val)   _DEVADD(net, ipv6, 64, idev, field, val)
 
#define IP6_ADD_STATS_BH(net, idev, field, val)   _DEVADD(net, ipv6, 64_BH, idev, field, val)
 
#define IP6_UPD_PO_STATS(net, idev, field, val)   _DEVUPD(net, ipv6, 64, idev, field, val)
 
#define IP6_UPD_PO_STATS_BH(net, idev, field, val)   _DEVUPD(net, ipv6, 64_BH, idev, field, val)
 
#define ICMP6_INC_STATS(net, idev, field)   _DEVINCATOMIC(net, icmpv6, , idev, field)
 
#define ICMP6_INC_STATS_BH(net, idev, field)   _DEVINCATOMIC(net, icmpv6, _BH, idev, field)
 
#define ICMP6MSGOUT_INC_STATS(net, idev, field)   _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field +256)
 
#define ICMP6MSGOUT_INC_STATS_BH(net, idev, field)   _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field +256)
 
#define ICMP6MSGIN_INC_STATS_BH(net, idev, field)   _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field)
 
#define IPV6_FLOWINFO_MASK   cpu_to_be32(0x0FFFFFFF)
 
#define IPV6_FLOWLABEL_MASK   cpu_to_be32(0x000FFFFF)
 
#define IPV6_FRAG_HIGH_THRESH   (256 * 1024) /* 262144 */
 
#define IPV6_FRAG_LOW_THRESH   (192 * 1024) /* 196608 */
 
#define IPV6_FRAG_TIMEOUT   (60 * HZ) /* 60 seconds */
 

Enumerations

enum  ip6_defrag_users {
  IP6_DEFRAG_LOCAL_DELIVER, IP6_DEFRAG_CONNTRACK_IN, __IP6_DEFRAG_CONNTRACK_IN = IP6_DEFRAG_CONNTRACK_IN + USHRT_MAX, IP6_DEFRAG_CONNTRACK_OUT,
  __IP6_DEFRAG_CONNTRACK_OUT = IP6_DEFRAG_CONNTRACK_OUT + USHRT_MAX, IP6_DEFRAG_CONNTRACK_BRIDGE_IN, __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = IP6_DEFRAG_CONNTRACK_BRIDGE_IN + USHRT_MAX
}
 

Functions

struct ip6_flowlabelfl6_sock_lookup (struct sock *sk, __be32 label)
 
struct ipv6_txoptionsfl6_merge_options (struct ipv6_txoptions *opt_space, struct ip6_flowlabel *fl, struct ipv6_txoptions *fopt)
 
void fl6_free_socklist (struct sock *sk)
 
int ipv6_flowlabel_opt (struct sock *sk, char __user *optval, int optlen)
 
int ip6_flowlabel_init (void)
 
void ip6_flowlabel_cleanup (void)
 
void icmpv6_notify (struct sk_buff *skb, u8 type, u8 code, __be32 info)
 
int ip6_ra_control (struct sock *sk, int sel)
 
int ipv6_parse_hopopts (struct sk_buff *skb)
 
struct ipv6_txoptionsipv6_dup_options (struct sock *sk, struct ipv6_txoptions *opt)
 
struct ipv6_txoptionsipv6_renew_options (struct sock *sk, struct ipv6_txoptions *opt, int newtype, struct ipv6_opt_hdr __user *newopt, int newoptlen)
 
struct ipv6_txoptionsipv6_fixup_options (struct ipv6_txoptions *opt_space, struct ipv6_txoptions *opt)
 
bool ipv6_opt_accepted (const struct sock *sk, const struct sk_buff *skb)
 
int __ipv6_addr_type (const struct in6_addr *addr)
 
void ip6_frag_init (struct inet_frag_queue *q, void *a)
 
bool ip6_frag_match (struct inet_frag_queue *q, void *a)
 
void ip6_expire_frag_queue (struct net *net, struct frag_queue *fq, struct inet_frags *frags)
 
void ipv6_select_ident (struct frag_hdr *fhdr, struct rt6_info *rt)
 
int ipv6_rcv (struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev)
 
int ip6_rcv_finish (struct sk_buff *skb)
 
int ip6_xmit (struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, struct ipv6_txoptions *opt, int tclass)
 
int ip6_nd_hdr (struct sock *sk, struct sk_buff *skb, struct net_device *dev, const struct in6_addr *saddr, const struct in6_addr *daddr, int proto, int len)
 
int ip6_find_1stfragopt (struct sk_buff *skb, u8 **nexthdr)
 
int ip6_append_data (struct sock *sk, int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int transhdrlen, int hlimit, int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, struct rt6_info *rt, unsigned int flags, int dontfrag)
 
int ip6_push_pending_frames (struct sock *sk)
 
void ip6_flush_pending_frames (struct sock *sk)
 
int ip6_dst_lookup (struct sock *sk, struct dst_entry **dst, struct flowi6 *fl6)
 
struct dst_entryip6_dst_lookup_flow (struct sock *sk, struct flowi6 *fl6, const struct in6_addr *final_dst, bool can_sleep)
 
struct dst_entryip6_sk_dst_lookup_flow (struct sock *sk, struct flowi6 *fl6, const struct in6_addr *final_dst, bool can_sleep)
 
struct dst_entryip6_blackhole_route (struct net *net, struct dst_entry *orig_dst)
 
int ip6_output (struct sk_buff *skb)
 
int ip6_forward (struct sk_buff *skb)
 
int ip6_input (struct sk_buff *skb)
 
int ip6_mc_input (struct sk_buff *skb)
 
int __ip6_local_out (struct sk_buff *skb)
 
int ip6_local_out (struct sk_buff *skb)
 
void ipv6_push_nfrag_opts (struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto, struct in6_addr **daddr_p)
 
void ipv6_push_frag_opts (struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto)
 
int ipv6_skip_exthdr (const struct sk_buff *, int start, u8 *nexthdrp, __be16 *frag_offp)
 
bool ipv6_ext_hdr (u8 nexthdr)
 
int ipv6_find_tlv (struct sk_buff *skb, int offset, int type)
 
struct in6_addrfl6_update_dst (struct flowi6 *fl6, const struct ipv6_txoptions *opt, struct in6_addr *orig)
 
int ipv6_setsockopt (struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen)
 
int ipv6_getsockopt (struct sock *sk, int level, int optname, char __user *optval, int __user *optlen)
 
int compat_ipv6_setsockopt (struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen)
 
int compat_ipv6_getsockopt (struct sock *sk, int level, int optname, char __user *optval, int __user *optlen)
 
int ip6_datagram_connect (struct sock *sk, struct sockaddr *addr, int addr_len)
 
int ipv6_recv_error (struct sock *sk, struct msghdr *msg, int len)
 
int ipv6_recv_rxpmtu (struct sock *sk, struct msghdr *msg, int len)
 
void ipv6_icmp_error (struct sock *sk, struct sk_buff *skb, int err, __be16 port, u32 info, u8 *payload)
 
void ipv6_local_error (struct sock *sk, int err, struct flowi6 *fl6, u32 info)
 
void ipv6_local_rxpmtu (struct sock *sk, struct flowi6 *fl6, u32 mtu)
 
int inet6_release (struct socket *sock)
 
int inet6_bind (struct socket *sock, struct sockaddr *uaddr, int addr_len)
 
int inet6_getname (struct socket *sock, struct sockaddr *uaddr, int *uaddr_len, int peer)
 
int inet6_ioctl (struct socket *sock, unsigned int cmd, unsigned long arg)
 
int inet6_hash_connect (struct inet_timewait_death_row *death_row, struct sock *sk)
 
int ip6_mc_source (int add, int omode, struct sock *sk, struct group_source_req *pgsr)
 
int ip6_mc_msfilter (struct sock *sk, struct group_filter *gsf)
 
int ip6_mc_msfget (struct sock *sk, struct group_filter *gsf, struct group_filter __user *optval, int __user *optlen)
 
unsigned int inet6_hash_frag (__be32 id, const struct in6_addr *saddr, const struct in6_addr *daddr, u32 rnd)
 

Variables

int sysctl_mld_max_msf
 
struct ip6_ra_chainip6_ra_chain
 
rwlock_t ip6_ra_lock
 
struct proto_ops inet6_stream_ops
 
struct proto_ops inet6_dgram_ops
 

Macro Definition Documentation

#define __IPV6_ADDR_SCOPE_INVALID   -1

Definition at line 83 of file ipv6.h.

#define _DEVADD (   net,
  statname,
  modifier,
  idev,
  field,
  val 
)
Value:
({ \
struct inet6_dev *_idev = (idev); \
if (likely(_idev != NULL)) \
SNMP_ADD_STATS##modifier((_idev)->stats.statname, (field), (val)); \
SNMP_ADD_STATS##modifier((net)->mib.statname##_statistics, (field), (val));\
})

Definition at line 144 of file ipv6.h.

#define _DEVINC (   net,
  statname,
  modifier,
  idev,
  field 
)
Value:
({ \
struct inet6_dev *_idev = (idev); \
if (likely(_idev != NULL)) \
SNMP_INC_STATS##modifier((_idev)->stats.statname, (field)); \
SNMP_INC_STATS##modifier((net)->mib.statname##_statistics, (field));\
})

Definition at line 118 of file ipv6.h.

#define _DEVINC_ATOMIC_ATOMIC (   net,
  statname,
  idev,
  field 
)
Value:
({ \
struct inet6_dev *_idev = (idev); \
if (likely(_idev != NULL)) \
SNMP_INC_STATS_ATOMIC_LONG((_idev)->stats.statname##dev, (field)); \
SNMP_INC_STATS_ATOMIC_LONG((net)->mib.statname##_statistics, (field));\
})

Definition at line 136 of file ipv6.h.

#define _DEVINCATOMIC (   net,
  statname,
  modifier,
  idev,
  field 
)
Value:
({ \
struct inet6_dev *_idev = (idev); \
if (likely(_idev != NULL)) \
SNMP_INC_STATS_ATOMIC_LONG((_idev)->stats.statname##dev, (field)); \
SNMP_INC_STATS##modifier((net)->mib.statname##_statistics, (field));\
})

Definition at line 127 of file ipv6.h.

#define _DEVUPD (   net,
  statname,
  modifier,
  idev,
  field,
  val 
)
Value:
({ \
struct inet6_dev *_idev = (idev); \
if (likely(_idev != NULL)) \
SNMP_UPD_PO_STATS##modifier((_idev)->stats.statname, field, (val)); \
SNMP_UPD_PO_STATS##modifier((net)->mib.statname##_statistics, field, (val));\
})

Definition at line 152 of file ipv6.h.

#define ICMP6_INC_STATS (   net,
  idev,
  field 
)    _DEVINCATOMIC(net, icmpv6, , idev, field)

Definition at line 174 of file ipv6.h.

#define ICMP6_INC_STATS_BH (   net,
  idev,
  field 
)    _DEVINCATOMIC(net, icmpv6, _BH, idev, field)

Definition at line 176 of file ipv6.h.

#define ICMP6MSGIN_INC_STATS_BH (   net,
  idev,
  field 
)    _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field)

Definition at line 183 of file ipv6.h.

#define ICMP6MSGOUT_INC_STATS (   net,
  idev,
  field 
)    _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field +256)

Definition at line 179 of file ipv6.h.

#define ICMP6MSGOUT_INC_STATS_BH (   net,
  idev,
  field 
)    _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field +256)

Definition at line 181 of file ipv6.h.

#define IP6_ADD_STATS (   net,
  idev,
  field,
  val 
)    _DEVADD(net, ipv6, 64, idev, field, val)

Definition at line 166 of file ipv6.h.

#define IP6_ADD_STATS_BH (   net,
  idev,
  field,
  val 
)    _DEVADD(net, ipv6, 64_BH, idev, field, val)

Definition at line 168 of file ipv6.h.

#define IP6_INC_STATS (   net,
  idev,
  field 
)    _DEVINC(net, ipv6, 64, idev, field)

Definition at line 162 of file ipv6.h.

#define IP6_INC_STATS_BH (   net,
  idev,
  field 
)    _DEVINC(net, ipv6, 64_BH, idev, field)

Definition at line 164 of file ipv6.h.

#define IP6_MF   0x0001

Definition at line 111 of file ipv6.h.

#define IP6_UPD_PO_STATS (   net,
  idev,
  field,
  val 
)    _DEVUPD(net, ipv6, 64, idev, field, val)

Definition at line 170 of file ipv6.h.

#define IP6_UPD_PO_STATS_BH (   net,
  idev,
  field,
  val 
)    _DEVUPD(net, ipv6, 64_BH, idev, field, val)

Definition at line 172 of file ipv6.h.

#define IPV6_ADDR_ANY   0x0000U

Definition at line 63 of file ipv6.h.

#define IPV6_ADDR_COMPATv4   0x0080U

Definition at line 72 of file ipv6.h.

#define IPV6_ADDR_LINKLOCAL   0x0020U

Definition at line 69 of file ipv6.h.

#define IPV6_ADDR_LOOPBACK   0x0010U

Definition at line 68 of file ipv6.h.

#define IPV6_ADDR_MAPPED   0x1000U

Definition at line 76 of file ipv6.h.

#define IPV6_ADDR_MC_FLAG_PREFIX (   a)    ((a)->s6_addr[1] & 0x20)

Definition at line 95 of file ipv6.h.

#define IPV6_ADDR_MC_FLAG_RENDEZVOUS (   a)    ((a)->s6_addr[1] & 0x40)

Definition at line 97 of file ipv6.h.

#define IPV6_ADDR_MC_FLAG_TRANSIENT (   a)    ((a)->s6_addr[1] & 0x10)

Definition at line 93 of file ipv6.h.

#define IPV6_ADDR_MC_SCOPE (   a)    ((a)->s6_addr[1] & 0x0f) /* nonstandard */

Definition at line 81 of file ipv6.h.

#define IPV6_ADDR_MULTICAST   0x0002U

Definition at line 66 of file ipv6.h.

#define IPV6_ADDR_SCOPE_GLOBAL   0x0e

Definition at line 88 of file ipv6.h.

#define IPV6_ADDR_SCOPE_LINKLOCAL   0x02

Definition at line 85 of file ipv6.h.

#define IPV6_ADDR_SCOPE_MASK   0x00f0U

Definition at line 74 of file ipv6.h.

#define IPV6_ADDR_SCOPE_NODELOCAL   0x01

Definition at line 84 of file ipv6.h.

#define IPV6_ADDR_SCOPE_ORGLOCAL   0x08

Definition at line 87 of file ipv6.h.

#define IPV6_ADDR_SCOPE_SITELOCAL   0x05

Definition at line 86 of file ipv6.h.

#define IPV6_ADDR_SITELOCAL   0x0040U

Definition at line 70 of file ipv6.h.

#define IPV6_ADDR_UNICAST   0x0001U

Definition at line 65 of file ipv6.h.

#define IPV6_DEFAULT_HOPLIMIT   64

Definition at line 49 of file ipv6.h.

#define IPV6_DEFAULT_MCASTHOPS   1

Definition at line 50 of file ipv6.h.

#define IPV6_FLOWINFO_MASK   cpu_to_be32(0x0FFFFFFF)

Definition at line 235 of file ipv6.h.

#define IPV6_FLOWLABEL_MASK   cpu_to_be32(0x000FFFFF)

Definition at line 236 of file ipv6.h.

#define IPV6_FRAG_HIGH_THRESH   (256 * 1024) /* 262144 */

Definition at line 286 of file ipv6.h.

#define IPV6_FRAG_LOW_THRESH   (192 * 1024) /* 196608 */

Definition at line 287 of file ipv6.h.

#define IPV6_FRAG_TIMEOUT   (60 * HZ) /* 60 seconds */

Definition at line 288 of file ipv6.h.

#define IPV6_MAXPLEN   65535

Definition at line 25 of file ipv6.h.

#define NEXTHDR_AUTH   51 /* Authentication header. */

Definition at line 39 of file ipv6.h.

#define NEXTHDR_DEST   60 /* Destination options header. */

Definition at line 42 of file ipv6.h.

#define NEXTHDR_ESP   50 /* Encapsulating security payload. */

Definition at line 38 of file ipv6.h.

#define NEXTHDR_FRAGMENT   44 /* Fragmentation/reassembly header. */

Definition at line 36 of file ipv6.h.

#define NEXTHDR_GRE   47 /* GRE header. */

Definition at line 37 of file ipv6.h.

#define NEXTHDR_HOP   0 /* Hop-by-hop option header. */

Definition at line 31 of file ipv6.h.

#define NEXTHDR_ICMP   58 /* ICMP for IPv6. */

Definition at line 40 of file ipv6.h.

#define NEXTHDR_IPV6   41 /* IPv6 in IPv6 */

Definition at line 34 of file ipv6.h.

#define NEXTHDR_MAX   255

Definition at line 45 of file ipv6.h.

#define NEXTHDR_MOBILITY   135 /* Mobility header. */

Definition at line 43 of file ipv6.h.

#define NEXTHDR_NONE   59 /* No next header */

Definition at line 41 of file ipv6.h.

#define NEXTHDR_ROUTING   43 /* Routing header. */

Definition at line 35 of file ipv6.h.

#define NEXTHDR_TCP   6 /* TCP segment. */

Definition at line 32 of file ipv6.h.

#define NEXTHDR_UDP   17 /* UDP message. */

Definition at line 33 of file ipv6.h.

#define SIN6_LEN_RFC2133   24

Definition at line 23 of file ipv6.h.

Enumeration Type Documentation

Enumerator:
IP6_DEFRAG_LOCAL_DELIVER 
IP6_DEFRAG_CONNTRACK_IN 
__IP6_DEFRAG_CONNTRACK_IN 
IP6_DEFRAG_CONNTRACK_OUT 
__IP6_DEFRAG_CONNTRACK_OUT 
IP6_DEFRAG_CONNTRACK_BRIDGE_IN 
__IP6_DEFRAG_CONNTRACK_BRIDGE_IN 

Definition at line 403 of file ipv6.h.

Function Documentation

int __ip6_local_out ( struct sk_buff skb)

Definition at line 61 of file ip6_output.c.

int __ipv6_addr_type ( const struct in6_addr addr)

Definition at line 27 of file addrconf_core.c.

int compat_ipv6_getsockopt ( struct sock sk,
int  level,
int  optname,
char __user optval,
int __user optlen 
)
int compat_ipv6_setsockopt ( struct sock sk,
int  level,
int  optname,
char __user optval,
unsigned int  optlen 
)
void fl6_free_socklist ( struct sock sk)

Definition at line 251 of file ip6_flowlabel.c.

struct ipv6_txoptions* fl6_merge_options ( struct ipv6_txoptions opt_space,
struct ip6_flowlabel fl,
struct ipv6_txoptions fopt 
)
read

Definition at line 272 of file ip6_flowlabel.c.

struct ip6_flowlabel* fl6_sock_lookup ( struct sock sk,
__be32  label 
)
read

Definition at line 228 of file ip6_flowlabel.c.

struct in6_addr* fl6_update_dst ( struct flowi6 fl6,
const struct ipv6_txoptions opt,
struct in6_addr orig 
)
read

fl6_update_dst - update flowi destination address with info given by srcrt option, if any.

: flowi6 for which daddr is to be updated : struct ipv6_txoptions in which to look for srcrt opt : copy of original daddr address if modified

Returns NULL if no txoptions or no srcrt, otherwise returns orig and initial value of fl6->daddr set in orig

Definition at line 912 of file exthdrs.c.

void icmpv6_notify ( struct sk_buff skb,
u8  type,
u8  code,
__be32  info 
)

Definition at line 601 of file icmp.c.

int inet6_bind ( struct socket sock,
struct sockaddr uaddr,
int  addr_len 
)

Definition at line 258 of file af_inet6.c.

int inet6_getname ( struct socket sock,
struct sockaddr uaddr,
int uaddr_len,
int  peer 
)

Definition at line 444 of file af_inet6.c.

int inet6_hash_connect ( struct inet_timewait_death_row death_row,
struct sock sk 
)

Definition at line 297 of file inet6_hashtables.c.

unsigned int inet6_hash_frag ( __be32  id,
const struct in6_addr saddr,
const struct in6_addr daddr,
u32  rnd 
)

Definition at line 77 of file reassembly.c.

int inet6_ioctl ( struct socket sock,
unsigned int  cmd,
unsigned long  arg 
)

Definition at line 480 of file af_inet6.c.

int inet6_release ( struct socket sock)

Definition at line 396 of file af_inet6.c.

int ip6_append_data ( struct sock sk,
int   getfragvoid *from, char *to, int offset, int len, int odd, struct sk_buff *skb,
void from,
int  length,
int  transhdrlen,
int  hlimit,
int  tclass,
struct ipv6_txoptions opt,
struct flowi6 fl6,
struct rt6_info rt,
unsigned int  flags,
int  dontfrag 
)
struct dst_entry* ip6_blackhole_route ( struct net net,
struct dst_entry orig_dst 
)
read

Definition at line 975 of file route.c.

int ip6_datagram_connect ( struct sock sk,
struct sockaddr addr,
int  addr_len 
)

Definition at line 42 of file datagram.c.

int ip6_dst_lookup ( struct sock sk,
struct dst_entry **  dst,
struct flowi6 fl6 
)

ip6_dst_lookup - perform route lookup on flow : socket which provides route info : pointer to dst_entry * for result : flow to lookup

This function performs a route lookup on the given flow.

It returns zero on success, or a standard errno code on error.

Definition at line 1030 of file ip6_output.c.

struct dst_entry* ip6_dst_lookup_flow ( struct sock sk,
struct flowi6 fl6,
const struct in6_addr final_dst,
bool  can_sleep 
)
read

ip6_dst_lookup_flow - perform route lookup on flow with ipsec : socket which provides route info : flow to lookup : final destination address for ipsec lookup : we are in a sleepable context

This function performs a route lookup on the given flow.

It returns a valid dst pointer on success, or a pointer encoded error code.

Definition at line 1049 of file ip6_output.c.

void ip6_expire_frag_queue ( struct net net,
struct frag_queue fq,
struct inet_frags frags 
)

Definition at line 134 of file reassembly.c.

int ip6_find_1stfragopt ( struct sk_buff skb,
u8 **  nexthdr 
)

Definition at line 548 of file ip6_output.c.

void ip6_flowlabel_cleanup ( void  )

Definition at line 811 of file ip6_flowlabel.c.

int ip6_flowlabel_init ( void  )

Definition at line 806 of file ip6_flowlabel.c.

void ip6_flush_pending_frames ( struct sock sk)

Definition at line 1654 of file ip6_output.c.

int ip6_forward ( struct sk_buff skb)

Definition at line 368 of file ip6_output.c.

void ip6_frag_init ( struct inet_frag_queue q,
void a 
)

Definition at line 122 of file reassembly.c.

bool ip6_frag_match ( struct inet_frag_queue q,
void a 
)

Definition at line 109 of file reassembly.c.

int ip6_input ( struct sk_buff skb)

Definition at line 250 of file ip6_input.c.

int ip6_local_out ( struct sk_buff skb)

Definition at line 74 of file ip6_output.c.

int ip6_mc_input ( struct sk_buff skb)

Definition at line 256 of file ip6_input.c.

int ip6_mc_msfget ( struct sock sk,
struct group_filter gsf,
struct group_filter __user optval,
int __user optlen 
)

Definition at line 539 of file mcast.c.

int ip6_mc_msfilter ( struct sock sk,
struct group_filter gsf 
)

Definition at line 450 of file mcast.c.

int ip6_mc_source ( int  add,
int  omode,
struct sock sk,
struct group_source_req pgsr 
)

Definition at line 315 of file mcast.c.

int ip6_nd_hdr ( struct sock sk,
struct sk_buff skb,
struct net_device dev,
const struct in6_addr saddr,
const struct in6_addr daddr,
int  proto,
int  len 
)

Definition at line 256 of file ip6_output.c.

int ip6_output ( struct sk_buff skb)

Definition at line 146 of file ip6_output.c.

int ip6_push_pending_frames ( struct sock sk)

Definition at line 1569 of file ip6_output.c.

int ip6_ra_control ( struct sock sk,
int  sel 
)

Definition at line 61 of file ipv6_sockglue.c.

int ip6_rcv_finish ( struct sk_buff skb)

Definition at line 50 of file ip6_input.c.

struct dst_entry* ip6_sk_dst_lookup_flow ( struct sock sk,
struct flowi6 fl6,
const struct in6_addr final_dst,
bool  can_sleep 
)
read

ip6_sk_dst_lookup_flow - perform socket cached route lookup on flow : socket which provides the dst cache and route info : flow to lookup : final destination address for ipsec lookup : we are in a sleepable context

This function performs a route lookup on the given flow with the possibility of using the cached route in the socket if it is valid. It will take the socket dst lock when operating on the dst cache. As a result, this function can only be used in process context.

It returns a valid dst pointer on success, or a pointer encoded error code.

Definition at line 1083 of file ip6_output.c.

int ip6_xmit ( struct sock sk,
struct sk_buff skb,
struct flowi6 fl6,
struct ipv6_txoptions opt,
int  tclass 
)

Definition at line 166 of file ip6_output.c.

struct ipv6_txoptions* ipv6_dup_options ( struct sock sk,
struct ipv6_txoptions opt 
)
read

Definition at line 763 of file exthdrs.c.

bool ipv6_ext_hdr ( u8  nexthdr)

Definition at line 12 of file exthdrs_core.c.

int ipv6_find_tlv ( struct sk_buff skb,
int  offset,
int  type 
)

Definition at line 52 of file exthdrs.c.

struct ipv6_txoptions* ipv6_fixup_options ( struct ipv6_txoptions opt_space,
struct ipv6_txoptions opt 
)
read

Definition at line 881 of file exthdrs.c.

int ipv6_flowlabel_opt ( struct sock sk,
char __user optval,
int  optlen 
)

Definition at line 475 of file ip6_flowlabel.c.

int ipv6_getsockopt ( struct sock sk,
int  level,
int  optname,
char __user optval,
int __user optlen 
)

Definition at line 1250 of file ipv6_sockglue.c.

void ipv6_icmp_error ( struct sock sk,
struct sk_buff skb,
int  err,
__be16  port,
u32  info,
u8 payload 
)

Definition at line 208 of file datagram.c.

void ipv6_local_error ( struct sock sk,
int  err,
struct flowi6 fl6,
u32  info 
)

Definition at line 243 of file datagram.c.

void ipv6_local_rxpmtu ( struct sock sk,
struct flowi6 fl6,
u32  mtu 
)

Definition at line 282 of file datagram.c.

bool ipv6_opt_accepted ( const struct sock sk,
const struct sk_buff skb 
)

Definition at line 681 of file af_inet6.c.

int ipv6_parse_hopopts ( struct sk_buff skb)

Definition at line 667 of file exthdrs.c.

void ipv6_push_frag_opts ( struct sk_buff skb,
struct ipv6_txoptions opt,
u8 proto 
)

Definition at line 756 of file exthdrs.c.

void ipv6_push_nfrag_opts ( struct sk_buff skb,
struct ipv6_txoptions opt,
u8 proto,
struct in6_addr **  daddr_p 
)

Definition at line 738 of file exthdrs.c.

int ipv6_rcv ( struct sk_buff skb,
struct net_device dev,
struct packet_type pt,
struct net_device orig_dev 
)

Definition at line 65 of file ip6_input.c.

int ipv6_recv_error ( struct sock sk,
struct msghdr msg,
int  len 
)

Definition at line 320 of file datagram.c.

int ipv6_recv_rxpmtu ( struct sock sk,
struct msghdr msg,
int  len 
)

Definition at line 424 of file datagram.c.

struct ipv6_txoptions* ipv6_renew_options ( struct sock sk,
struct ipv6_txoptions opt,
int  newtype,
struct ipv6_opt_hdr __user newopt,
int  newoptlen 
)
read

Definition at line 810 of file exthdrs.c.

void ipv6_select_ident ( struct frag_hdr fhdr,
struct rt6_info rt 
)

Definition at line 587 of file ip6_output.c.

int ipv6_setsockopt ( struct sock sk,
int  level,
int  optname,
char __user optval,
unsigned int  optlen 
)

Definition at line 847 of file ipv6_sockglue.c.

int ipv6_skip_exthdr ( const struct sk_buff ,
int  start,
u8 nexthdrp,
__be16 frag_offp 
)

Definition at line 71 of file exthdrs_core.c.

Variable Documentation

struct proto_ops inet6_dgram_ops

Definition at line 539 of file af_inet6.c.

struct proto_ops inet6_stream_ops

Definition at line 513 of file af_inet6.c.

Definition at line 58 of file ipv6_sockglue.c.

rwlock_t ip6_ra_lock
int sysctl_mld_max_msf