root/net/ipv4/netlink.c

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

DEFINITIONS

This source file includes following definitions.
  1. rtm_getroute_parse_ip_proto

   1 // SPDX-License-Identifier: GPL-2.0-only
   2 #include <linux/netlink.h>
   3 #include <linux/rtnetlink.h>
   4 #include <linux/types.h>
   5 #include <net/net_namespace.h>
   6 #include <net/netlink.h>
   7 #include <linux/in6.h>
   8 #include <net/ip.h>
   9 
  10 int rtm_getroute_parse_ip_proto(struct nlattr *attr, u8 *ip_proto, u8 family,
  11                                 struct netlink_ext_ack *extack)
  12 {
  13         *ip_proto = nla_get_u8(attr);
  14 
  15         switch (*ip_proto) {
  16         case IPPROTO_TCP:
  17         case IPPROTO_UDP:
  18                 return 0;
  19         case IPPROTO_ICMP:
  20                 if (family != AF_INET)
  21                         break;
  22                 return 0;
  23 #if IS_ENABLED(CONFIG_IPV6)
  24         case IPPROTO_ICMPV6:
  25                 if (family != AF_INET6)
  26                         break;
  27                 return 0;
  28 #endif
  29         }
  30         NL_SET_ERR_MSG(extack, "Unsupported ip proto");
  31         return -EOPNOTSUPP;
  32 }
  33 EXPORT_SYMBOL_GPL(rtm_getroute_parse_ip_proto);

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