The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/netlink/route/common.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2022 Alexander V. Chernikov <melifaro@FreeBSD.org>
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  */
   27 
   28 /*
   29  * Common defines for all parts of the NETLINK_ROUTE family
   30  */
   31 #ifndef _NETLINK_ROUTE_COMMON_H_
   32 #define _NETLINK_ROUTE_COMMON_H_
   33 
   34 /* Defined NETLINK_ROUTE messages */
   35 enum {
   36         NL_RTM_BASE             = 16,
   37         NL_RTM_NEWLINK          = 16, /* creates new interface */
   38         NL_RTM_DELLINK          = 17, /* deletes matching interface */
   39         NL_RTM_GETLINK          = 18, /* lists matching interfaces */
   40         NL_RTM_SETLINK          = 19, /* not supported */
   41         NL_RTM_NEWADDR          = 20, /* not supported */
   42         NL_RTM_DELADDR          = 21, /* not supported */
   43         NL_RTM_GETADDR          = 22, /* lists matching ifaddrs */
   44         NL_RTM_NEWROUTE         = 24, /* adds or changes a route */
   45         NL_RTM_DELROUTE         = 25, /* deletes matching route */
   46         NL_RTM_GETROUTE         = 26, /* lists matching routes */
   47         NL_RTM_NEWNEIGH         = 28, /* creates new arp/ndp entry */
   48         NL_RTM_DELNEIGH         = 29, /* deletes matching arp/ndp entry */
   49         NL_RTM_GETNEIGH         = 30, /* lists matching arp/ndp entry */
   50         NL_RTM_NEWRULE          = 32, /* not supported */
   51         NL_RTM_DELRULE          = 33, /* not supported */
   52         NL_RTM_GETRULE          = 34, /* not supported */
   53         NL_RTM_NEWQDISC         = 36, /* not supported */
   54         NL_RTM_DELQDISC         = 37, /* not supported */
   55         NL_RTM_GETQDISC         = 38, /* not supported */
   56         NL_RTM_NEWTCLASS        = 40, /* not supported */
   57         NL_RTM_DELTCLASS        = 41, /* not supported */
   58         NL_RTM_GETTCLASS        = 42, /* not supported */
   59         NL_RTM_NEWTFILTER       = 44, /* not supported */
   60         NL_RTM_DELTFILTER       = 45, /* not supported */
   61         NL_RTM_GETTFILTER       = 46, /* not supported */
   62         NL_RTM_NEWACTION        = 48, /* not supported */
   63         NL_RTM_DELACTION        = 49, /* not supported */
   64         NL_RTM_GETACTION        = 50, /* not supported */
   65         NL_RTM_NEWPREFIX        = 52, /* not supported */
   66         NL_RTM_GETMULTICAST     = 58, /* not supported */
   67         NL_RTM_GETANYCAST       = 62, /* not supported */
   68         NL_RTM_NEWNEIGHTBL      = 64, /* not supported */
   69         NL_RTM_GETNEIGHTBL      = 66, /* not supported */
   70         NL_RTM_SETNEIGHTBL      = 67, /* not supported */
   71         NL_RTM_NEWNDUSEROPT     = 68, /* not supported */
   72         NL_RTM_NEWADDRLABEL     = 72, /* not supported */
   73         NL_RTM_DELADDRLABEL     = 73, /* not supported */
   74         NL_RTM_GETADDRLABEL     = 74, /* not supported */
   75         NL_RTM_GETDCB           = 78, /* not supported */
   76         NL_RTM_SETDCB           = 79, /* not supported */
   77         NL_RTM_NEWNETCONF       = 80, /* not supported */
   78         NL_RTM_GETNETCONF       = 82, /* not supported */
   79         NL_RTM_NEWMDB           = 84, /* not supported */
   80         NL_RTM_DELMDB           = 85, /* not supported */
   81         NL_RTM_GETMDB           = 86, /* not supported */
   82         NL_RTM_NEWNSID          = 88, /* not supported */
   83         NL_RTM_DELNSID          = 89, /* not supported */
   84         NL_RTM_GETNSID          = 90, /* not supported */
   85         NL_RTM_NEWSTATS         = 92, /* not supported */
   86         NL_RTM_GETSTATS         = 94, /* not supported */
   87         NL_RTM_NEWNEXTHOP       = 104, /* creates new user nexhtop */
   88         NL_RTM_DELNEXTHOP       = 105, /* deletes matching nexthop */
   89         NL_RTM_GETNEXTHOP       = 106, /* lists created user nexthops */
   90         __NL_RTM_MAX,
   91 };
   92 #define NL_RTM_MAX (((__NL_RTM_MAX + 3) & ~3) - 1)
   93 
   94 #ifndef _KERNEL
   95 /*
   96  * RTM_* namespace clashes with BSD rtsock namespace.
   97  * Use NL_RTM_ prefix in the kernel and map it to RTM_
   98  * for userland.
   99  */
  100 #define RTM_BASE        NL_RTM_BASE
  101 #define RTM_NEWLINK     NL_RTM_NEWLINK
  102 #define RTM_DELLINK     NL_RTM_DELLINK
  103 #define RTM_GETLINK     NL_RTM_GETLINK
  104 #define RTM_SETLINK     NL_RTM_SETLINK
  105 #define RTM_NEWADDR     NL_RTM_NEWADDR
  106 #define RTM_DELADDR     NL_RTM_DELADDR
  107 #define RTM_GETADDR     NL_RTM_GETADDR
  108 #define RTM_NEWROUTE    NL_RTM_NEWROUTE
  109 #define RTM_DELROUTE    NL_RTM_DELROUTE
  110 #define RTM_GETROUTE    NL_RTM_GETROUTE
  111 #define RTM_NEWNEXTHOP  NL_RTM_NEWNEXTHOP
  112 #define RTM_DELNEXTHOP  NL_RTM_DELNEXTHOP
  113 #define RTM_GETNEXTHOP  NL_RTM_GETNEXTHOP
  114 #endif
  115 
  116 #ifndef _KERNEL
  117 /* rtnetlink multicast groups - backwards compatibility for userspace */
  118 #define RTMGRP_LINK             0x01
  119 #define RTMGRP_NOTIFY           0x02
  120 #define RTMGRP_NEIGH            0x04
  121 #define RTMGRP_TC               0x08
  122 
  123 #define RTMGRP_IPV4_IFADDR      0x10
  124 #define RTMGRP_IPV4_MROUTE      0x20
  125 #define RTMGRP_IPV4_ROUTE       0x40
  126 #define RTMGRP_IPV4_RULE        0x80
  127 
  128 #define RTMGRP_IPV6_IFADDR      0x100
  129 #define RTMGRP_IPV6_MROUTE      0x200
  130 #define RTMGRP_IPV6_ROUTE       0x400
  131 #define RTMGRP_IPV6_IFINFO      0x800
  132 
  133 #define RTMGRP_DECnet_IFADDR    0x1000
  134 #define RTMGRP_DECnet_ROUTE     0x4000
  135 
  136 #define RTMGRP_IPV6_PREFIX      0x20000
  137 #endif
  138 
  139 /* Defined NETLINK_ROUTE multicast groups */
  140 enum rtnetlink_groups {
  141         RTNLGRP_NONE,
  142 #define RTNLGRP_NONE            RTNLGRP_NONE
  143         RTNLGRP_LINK,
  144 #define RTNLGRP_LINK            RTNLGRP_LINK
  145         RTNLGRP_NOTIFY,
  146 #define RTNLGRP_NOTIFY          RTNLGRP_NOTIFY
  147         RTNLGRP_NEIGH,
  148 #define RTNLGRP_NEIGH           RTNLGRP_NEIGH
  149         RTNLGRP_TC,
  150 #define RTNLGRP_TC              RTNLGRP_TC
  151         RTNLGRP_IPV4_IFADDR,
  152 #define RTNLGRP_IPV4_IFADDR     RTNLGRP_IPV4_IFADDR
  153         RTNLGRP_IPV4_MROUTE,
  154 #define RTNLGRP_IPV4_MROUTE     RTNLGRP_IPV4_MROUTE
  155         RTNLGRP_IPV4_ROUTE,
  156 #define RTNLGRP_IPV4_ROUTE      RTNLGRP_IPV4_ROUTE
  157         RTNLGRP_IPV4_RULE,
  158 #define RTNLGRP_IPV4_RULE       RTNLGRP_IPV4_RULE
  159         RTNLGRP_IPV6_IFADDR,
  160 #define RTNLGRP_IPV6_IFADDR     RTNLGRP_IPV6_IFADDR
  161         RTNLGRP_IPV6_MROUTE,
  162 #define RTNLGRP_IPV6_MROUTE     RTNLGRP_IPV6_MROUTE
  163         RTNLGRP_IPV6_ROUTE,
  164 #define RTNLGRP_IPV6_ROUTE      RTNLGRP_IPV6_ROUTE
  165         RTNLGRP_IPV6_IFINFO,
  166 #define RTNLGRP_IPV6_IFINFO     RTNLGRP_IPV6_IFINFO
  167         RTNLGRP_DECnet_IFADDR,
  168 #define RTNLGRP_DECnet_IFADDR   RTNLGRP_DECnet_IFADDR
  169         RTNLGRP_NOP2,
  170         RTNLGRP_DECnet_ROUTE,
  171 #define RTNLGRP_DECnet_ROUTE    RTNLGRP_DECnet_ROUTE
  172         RTNLGRP_DECnet_RULE,
  173 #define RTNLGRP_DECnet_RULE     RTNLGRP_DECnet_RULE
  174         RTNLGRP_NOP4,
  175         RTNLGRP_IPV6_PREFIX,
  176 #define RTNLGRP_IPV6_PREFIX     RTNLGRP_IPV6_PREFIX
  177         RTNLGRP_IPV6_RULE,
  178 #define RTNLGRP_IPV6_RULE       RTNLGRP_IPV6_RULE
  179         RTNLGRP_ND_USEROPT,
  180 #define RTNLGRP_ND_USEROPT      RTNLGRP_ND_USEROPT
  181         RTNLGRP_PHONET_IFADDR,
  182 #define RTNLGRP_PHONET_IFADDR   RTNLGRP_PHONET_IFADDR
  183         RTNLGRP_PHONET_ROUTE,
  184 #define RTNLGRP_PHONET_ROUTE    RTNLGRP_PHONET_ROUTE
  185         RTNLGRP_DCB,
  186 #define RTNLGRP_DCB             RTNLGRP_DCB
  187         RTNLGRP_IPV4_NETCONF,
  188 #define RTNLGRP_IPV4_NETCONF    RTNLGRP_IPV4_NETCONF
  189         RTNLGRP_IPV6_NETCONF,
  190 #define RTNLGRP_IPV6_NETCONF    RTNLGRP_IPV6_NETCONF
  191         RTNLGRP_MDB,
  192 #define RTNLGRP_MDB             RTNLGRP_MDB
  193         RTNLGRP_MPLS_ROUTE,
  194 #define RTNLGRP_MPLS_ROUTE      RTNLGRP_MPLS_ROUTE
  195         RTNLGRP_NSID,
  196 #define RTNLGRP_NSID            RTNLGRP_NSID
  197         RTNLGRP_MPLS_NETCONF,
  198 #define RTNLGRP_MPLS_NETCONF    RTNLGRP_MPLS_NETCONF
  199         RTNLGRP_IPV4_MROUTE_R,
  200 #define RTNLGRP_IPV4_MROUTE_R   RTNLGRP_IPV4_MROUTE_R
  201         RTNLGRP_IPV6_MROUTE_R,
  202 #define RTNLGRP_IPV6_MROUTE_R   RTNLGRP_IPV6_MROUTE_R
  203         RTNLGRP_NEXTHOP,
  204 #define RTNLGRP_NEXTHOP         RTNLGRP_NEXTHOP
  205         RTNLGRP_BRVLAN,
  206 #define RTNLGRP_BRVLAN          RTNLGRP_BRVLAN
  207         __RTNLGRP_MAX
  208 };
  209 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
  210 
  211 
  212 #endif
  213 

Cache object: 9112038f28912a959d73150783ccdec1


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.