linux/include/linux/icmpv6.h
<<
>>
Prefs
   1#ifndef _LINUX_ICMPV6_H
   2#define _LINUX_ICMPV6_H
   3
   4#include <linux/skbuff.h>
   5#include <uapi/linux/icmpv6.h>
   6
   7static inline struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb)
   8{
   9        return (struct icmp6hdr *)skb_transport_header(skb);
  10}
  11
  12#include <linux/netdevice.h>
  13
  14#if IS_ENABLED(CONFIG_IPV6)
  15extern void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info);
  16
  17typedef void ip6_icmp_send_t(struct sk_buff *skb, u8 type, u8 code, __u32 info,
  18                             const struct in6_addr *force_saddr);
  19extern int inet6_register_icmp_sender(ip6_icmp_send_t *fn);
  20extern int inet6_unregister_icmp_sender(ip6_icmp_send_t *fn);
  21int ip6_err_gen_icmpv6_unreach(struct sk_buff *skb, int nhs, int type,
  22                               unsigned int data_len);
  23
  24#else
  25
  26static inline void icmpv6_send(struct sk_buff *skb,
  27                               u8 type, u8 code, __u32 info)
  28{
  29
  30}
  31#endif
  32
  33extern int                              icmpv6_init(void);
  34extern int                              icmpv6_err_convert(u8 type, u8 code,
  35                                                           int *err);
  36extern void                             icmpv6_cleanup(void);
  37extern void                             icmpv6_param_prob(struct sk_buff *skb,
  38                                                          u8 code, int pos);
  39
  40struct flowi6;
  41struct in6_addr;
  42extern void                             icmpv6_flow_init(struct sock *sk,
  43                                                         struct flowi6 *fl6,
  44                                                         u8 type,
  45                                                         const struct in6_addr *saddr,
  46                                                         const struct in6_addr *daddr,
  47                                                         int oif);
  48#endif
  49