LCOV - code coverage report
Current view: top level - include/linux - mroute.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 2 2 100.0 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

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

Generated by: LCOV version 1.14