root/include/linux/mroute.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. ip_mroute_opt
  2. ip_mroute_setsockopt
  3. ip_mroute_getsockopt
  4. ipmr_ioctl
  5. ip_mr_init
  6. ip_mroute_opt
  7. ipmr_rule_default

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __LINUX_MROUTE_H
   3 #define __LINUX_MROUTE_H
   4 
   5 #include <linux/in.h>
   6 #include <linux/pim.h>
   7 #include <net/fib_rules.h>
   8 #include <net/fib_notifier.h>
   9 #include <uapi/linux/mroute.h>
  10 #include <linux/mroute_base.h>
  11 
  12 #ifdef CONFIG_IP_MROUTE
  13 static inline int ip_mroute_opt(int opt)
  14 {
  15         return opt >= MRT_BASE && opt <= MRT_MAX;
  16 }
  17 
  18 int ip_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
  19 int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
  20 int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg);
  21 int ipmr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg);
  22 int ip_mr_init(void);
  23 bool ipmr_rule_default(const struct fib_rule *rule);
  24 #else
  25 static inline int ip_mroute_setsockopt(struct sock *sock, int optname,
  26                                        char __user *optval, unsigned int optlen)
  27 {
  28         return -ENOPROTOOPT;
  29 }
  30 
  31 static inline int ip_mroute_getsockopt(struct sock *sock, int optname,
  32                                        char __user *optval, int __user *optlen)
  33 {
  34         return -ENOPROTOOPT;
  35 }
  36 
  37 static inline int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg)
  38 {
  39         return -ENOIOCTLCMD;
  40 }
  41 
  42 static inline int ip_mr_init(void)
  43 {
  44         return 0;
  45 }
  46 
  47 static inline int ip_mroute_opt(int opt)
  48 {
  49         return 0;
  50 }
  51 
  52 static inline bool ipmr_rule_default(const struct fib_rule *rule)
  53 {
  54         return true;
  55 }
  56 #endif
  57 
  58 #define VIFF_STATIC 0x8000
  59 
  60 struct mfc_cache_cmp_arg {
  61         __be32 mfc_mcastgrp;
  62         __be32 mfc_origin;
  63 };
  64 
  65 /**
  66  * struct mfc_cache - multicast routing entries
  67  * @_c: Common multicast routing information; has to be first [for casting]
  68  * @mfc_mcastgrp: destination multicast group address
  69  * @mfc_origin: source address
  70  * @cmparg: used for rhashtable comparisons
  71  */
  72 struct mfc_cache {
  73         struct mr_mfc _c;
  74         union {
  75                 struct {
  76                         __be32 mfc_mcastgrp;
  77                         __be32 mfc_origin;
  78                 };
  79                 struct mfc_cache_cmp_arg cmparg;
  80         };
  81 };
  82 
  83 struct rtmsg;
  84 int ipmr_get_route(struct net *net, struct sk_buff *skb,
  85                    __be32 saddr, __be32 daddr,
  86                    struct rtmsg *rtm, u32 portid);
  87 #endif

/* [<][>][^][v][top][bottom][index][help] */