FreeBSD kernel IPv4 code
in.c File Reference
#include <sys/cdefs.h>
#include "opt_inet.h"
#include <sys/param.h>
#include <sys/eventhandler.h>
#include <sys/systm.h>
#include <sys/sockio.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <sys/socket.h>
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
#include <sys/syslog.h>
#include <sys/sx.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_arp.h>
#include <net/if_dl.h>
#include <net/if_llatbl.h>
#include <net/if_types.h>
#include <net/route.h>
#include <net/route/nhop.h>
#include <net/route/route_ctl.h>
#include <net/vnet.h>
#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <netinet/in_fib.h>
#include <netinet/in_var.h>
#include <netinet/in_pcb.h>
#include <netinet/ip_var.h>
#include <netinet/ip_carp.h>
#include <netinet/igmp_var.h>
#include <netinet/udp.h>
#include <netinet/udp_var.h>
Include dependency graph for in.c:

Go to the source code of this file.

Data Structures

struct  in_llentry
 

Macros

#define IN_HISTORICAL_NETS   /* include class masks */
 
#define V_nosameprefix   VNET(nosameprefix)
 
#define V_broadcast_lowest   VNET(broadcast_lowest)
 
#define V_ripcbinfo   VNET(ripcbinfo)
 
#define IN_LLTBL_DEFAULT_HSIZE   32
 
#define IN_LLTBL_HASH(k, h)    (((((((k >> 8) ^ k) >> 8) ^ k) >> 8) ^ k) & ((h) - 1))
 
#define IN_ARE_MASKED_ADDR_EQUAL(d, a, m)
 

Functions

 __FBSDID ("$FreeBSD$")
 
static int in_aifaddr_ioctl (u_long, caddr_t, struct ifnet *, struct thread *)
 
static int in_difaddr_ioctl (u_long, caddr_t, struct ifnet *, struct thread *)
 
static int in_gifaddr_ioctl (u_long, caddr_t, struct ifnet *, struct thread *)
 
static void in_socktrim (struct sockaddr_in *)
 
static void in_purgemaddrs (struct ifnet *)
 
static bool ia_need_loopback_route (const struct in_ifaddr *)
 
 VNET_DEFINE_STATIC (int, nosameprefix)
 
 SYSCTL_INT (_net_inet_ip, OID_AUTO, no_same_prefix, CTLFLAG_VNET|CTLFLAG_RW, &VNET_NAME(nosameprefix), 0, "Refuse to create same prefixes on different interfaces")
 
 VNET_DEFINE_STATIC (bool, broadcast_lowest)
 
 SYSCTL_BOOL (_net_inet_ip, OID_AUTO, broadcast_lowest, CTLFLAG_VNET|CTLFLAG_RW, &VNET_NAME(broadcast_lowest), 0, "Treat lowest address on a subnet (host 0) as broadcast")
 
 VNET_DECLARE (struct inpcbinfo, ripcbinfo)
 
 SX_SYSINIT (in_control_sx, &in_control_sx, "in_control")
 
int in_localaddr (struct in_addr in)
 
bool in_localip (struct in_addr in)
 
bool in_localip_fib (struct in_addr in, uint16_t fib)
 
int in_ifhasaddr (struct ifnet *ifp, struct in_addr in)
 
static struct in_ifaddrin_localip_more (struct in_ifaddr *original_ia)
 
struct in_ifaddrin_findlocal (uint32_t fibnum, bool loopback_ok)
 
int in_canforward (struct in_addr in)
 
int in_control (struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp, struct thread *td)
 
static int in_match_ifaddr (const struct rtentry *rt, const struct nhop_object *nh, void *arg)
 
static int in_handle_prefix_route (uint32_t fibnum, int cmd, struct sockaddr_in *dst, struct sockaddr_in *netmask, struct ifaddr *ifa, struct ifnet *ifp)
 
static void ia_getrtprefix (const struct in_ifaddr *ia, struct in_addr *prefix, struct in_addr *mask)
 
int in_handle_ifaddr_route (int cmd, struct in_ifaddr *ia)
 
static bool in_hasrtprefix (struct in_ifaddr *target)
 
int in_addprefix (struct in_ifaddr *target)
 
static void in_scrubprefixlle (struct in_ifaddr *ia, int all, u_int flags)
 
int in_scrubprefix (struct in_ifaddr *target, u_int flags)
 
void in_ifscrub_all (void)
 
int in_ifaddr_broadcast (struct in_addr in, struct in_ifaddr *ia)
 
int in_broadcast (struct in_addr in, struct ifnet *ifp)
 
void in_ifdetach (struct ifnet *ifp)
 
static void in_lltable_destroy_lle_unlocked (epoch_context_t ctx)
 
static void in_lltable_destroy_lle (struct llentry *lle)
 
static struct llentry * in_lltable_new (struct in_addr addr4, u_int flags)
 
static int in_lltable_match_prefix (const struct sockaddr *saddr, const struct sockaddr *smask, u_int flags, struct llentry *lle)
 
static void in_lltable_free_entry (struct lltable *llt, struct llentry *lle)
 
static int in_lltable_rtcheck (struct ifnet *ifp, u_int flags, const struct sockaddr *l3addr)
 
static uint32_t in_lltable_hash_dst (const struct in_addr dst, uint32_t hsize)
 
static uint32_t in_lltable_hash (const struct llentry *lle, uint32_t hsize)
 
static void in_lltable_fill_sa_entry (const struct llentry *lle, struct sockaddr *sa)
 
static struct llentry * in_lltable_find_dst (struct lltable *llt, struct in_addr dst)
 
static void in_lltable_delete_entry (struct lltable *llt, struct llentry *lle)
 
static struct llentry * in_lltable_alloc (struct lltable *llt, u_int flags, const struct sockaddr *l3addr)
 
static struct llentry * in_lltable_lookup (struct lltable *llt, u_int flags, const struct sockaddr *l3addr)
 
static int in_lltable_dump_entry (struct lltable *llt, struct llentry *lle, struct sysctl_req *wr)
 
static struct lltable * in_lltattach (struct ifnet *ifp)
 
struct lltable * in_lltable_get (struct ifnet *ifp)
 
void * in_domifattach (struct ifnet *ifp)
 
void in_domifdetach (struct ifnet *ifp, void *aux)
 

Variables

static struct sx in_control_sx
 

Macro Definition Documentation

◆ IN_ARE_MASKED_ADDR_EQUAL

#define IN_ARE_MASKED_ADDR_EQUAL (   d,
  a,
 
)
Value:
( \
((((d).s_addr ^ (a).s_addr) & (m).s_addr)) == 0 )
union @45::@47 s_addr

Definition at line 1361 of file in.c.

◆ IN_HISTORICAL_NETS

#define IN_HISTORICAL_NETS   /* include class masks */

Definition at line 40 of file in.c.

◆ IN_LLTBL_DEFAULT_HSIZE

#define IN_LLTBL_DEFAULT_HSIZE   32

Definition at line 1307 of file in.c.

◆ IN_LLTBL_HASH

#define IN_LLTBL_HASH (   k,
 
)     (((((((k >> 8) ^ k) >> 8) ^ k) >> 8) ^ k) & ((h) - 1))

Definition at line 1308 of file in.c.

◆ V_broadcast_lowest

#define V_broadcast_lowest   VNET(broadcast_lowest)

Definition at line 95 of file in.c.

◆ V_nosameprefix

#define V_nosameprefix   VNET(nosameprefix)

Definition at line 89 of file in.c.

◆ V_ripcbinfo

#define V_ripcbinfo   VNET(ripcbinfo)

Definition at line 101 of file in.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ ia_getrtprefix()

static void ia_getrtprefix ( const struct in_ifaddr ia,
struct in_addr prefix,
struct in_addr mask 
)
static

Definition at line 888 of file in.c.

References in_ifaddr::ia_addr, in_ifaddr::ia_dstaddr, in_ifaddr::ia_sockmask, INADDR_BROADCAST, in_addr::s_addr, and sockaddr_in::sin_addr.

Referenced by in_handle_ifaddr_route(), in_hasrtprefix(), and in_scrubprefix().

Here is the caller graph for this function:

◆ ia_need_loopback_route()

static bool ia_need_loopback_route ( const struct in_ifaddr ia)
static

Definition at line 862 of file in.c.

References in_ifaddr::ia_addr, in_ifaddr::ia_dstaddr, in_ifaddr::ia_sockmask, INADDR_ANY, INADDR_BROADCAST, in_addr::s_addr, and sockaddr_in::sin_addr.

Referenced by in_aifaddr_ioctl(), and in_scrubprefix().

Here is the caller graph for this function:

◆ in_addprefix()

int in_addprefix ( struct in_ifaddr target)

Definition at line 992 of file in.c.

References in_ifaddr::ia_ifa, in_handle_ifaddr_route(), in_hasrtprefix(), and V_nosameprefix.

Referenced by carp_ifa_addroute(), and in_aifaddr_ioctl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_aifaddr_ioctl()

static int in_aifaddr_ioctl ( u_long  cmd,
caddr_t  data,
struct ifnet *  ifp,
struct thread *  td 
)
static

◆ in_broadcast()

int in_broadcast ( struct in_addr  in,
struct ifnet *  ifp 
)

Definition at line 1213 of file in.c.

References in_ifaddr_broadcast(), INADDR_ANY, INADDR_BROADCAST, and in_addr::s_addr.

Referenced by div_output_inbound(), rib4_preadd(), tcp_dropwithreset(), and tcp_input_with_port().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_canforward()

int in_canforward ( struct in_addr  in)

Definition at line 250 of file in.c.

References in_addr::s_addr.

Referenced by ip_forward().

Here is the caller graph for this function:

◆ in_control()

int in_control ( struct socket *  so,
u_long  cmd,
caddr_t  data,
struct ifnet *  ifp,
struct thread *  td 
)

Definition at line 281 of file in.c.

References in_aifaddr_ioctl(), in_control_sx, in_difaddr_ioctl(), in_gifaddr_ioctl(), INADDR_ANY, prison_check_ip4(), in_addr::s_addr, and sockaddr_in::sin_addr.

Referenced by in_ifscrub_all().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_difaddr_ioctl()

static int in_difaddr_ioctl ( u_long  cmd,
caddr_t  data,
struct ifnet *  ifp,
struct thread *  td 
)
static

Definition at line 611 of file in.c.

References in_ifaddr::ia_addr, in_ifinfo::ii_allhosts, in_control_sx, in_ifadown(), in_leavegroup(), in_scrubprefix(), prison_check_ip4(), in_addr::s_addr, sockaddr_in::sin_addr, sockaddr_in::sin_family, sockaddr_in::sin_len, and V_in_ifaddrhead.

Referenced by in_aifaddr_ioctl(), and in_control().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_domifattach()

void * in_domifattach ( struct ifnet *  ifp)

Definition at line 1719 of file in.c.

References igmp_domifattach(), in_ifinfo::ii_igmp, in_ifinfo::ii_llt, and in_lltattach().

Here is the call graph for this function:

◆ in_domifdetach()

void in_domifdetach ( struct ifnet *  ifp,
void *  aux 
)

Definition at line 1732 of file in.c.

References igmp_domifdetach(), and in_ifinfo::ii_llt.

Here is the call graph for this function:

◆ in_findlocal()

struct in_ifaddr * in_findlocal ( uint32_t  fibnum,
bool  loopback_ok 
)

Definition at line 221 of file in.c.

References in_ifaddr::ia_ifa, IA_SIN, and V_in_ifaddrhead.

◆ in_gifaddr_ioctl()

static int in_gifaddr_ioctl ( u_long  cmd,
caddr_t  data,
struct ifnet *  ifp,
struct thread *  td 
)
static

Definition at line 714 of file in.c.

References in_ifaddr::ia_addr, in_ifaddr::ia_dstaddr, in_ifaddr::ia_sockmask, in_aliasreq::ifra_addr, in_aliasreq::ifra_broadaddr, in_aliasreq::ifra_mask, prison_check_ip4(), in_addr::s_addr, sockaddr_in::sin_addr, sockaddr_in::sin_family, and sockaddr_in::sin_len.

Referenced by in_control().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_handle_ifaddr_route()

int in_handle_ifaddr_route ( int  cmd,
struct in_ifaddr ia 
)

Definition at line 912 of file in.c.

References ia_getrtprefix(), in_ifaddr::ia_ifa, in_handle_prefix_route(), INADDR_BROADCAST, in_addr::s_addr, s_addr, sockaddr_in::sin_addr, and sockaddr_in::sin_family.

Referenced by in_addprefix(), and in_scrubprefix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_handle_prefix_route()

static int in_handle_prefix_route ( uint32_t  fibnum,
int  cmd,
struct sockaddr_in dst,
struct sockaddr_in netmask,
struct ifaddr *  ifa,
struct ifnet *  ifp 
)
static

Definition at line 778 of file in.c.

References in_match_ifaddr().

Referenced by in_handle_ifaddr_route().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_hasrtprefix()

static bool in_hasrtprefix ( struct in_ifaddr target)
static

Definition at line 956 of file in.c.

References ia_getrtprefix(), in_addr::s_addr, and V_in_ifaddrhead.

Referenced by in_addprefix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_ifaddr_broadcast()

int in_ifaddr_broadcast ( struct in_addr  in,
struct in_ifaddr ia 
)

Definition at line 1191 of file in.c.

References in_ifaddr::ia_subnet, in_ifaddr::ia_subnetmask, in_addr::s_addr, and V_broadcast_lowest.

Referenced by in_broadcast(), and ip_output().

Here is the caller graph for this function:

◆ in_ifdetach()

void in_ifdetach ( struct ifnet *  ifp)

Definition at line 1243 of file in.c.

References IN_MULTI_LOCK, IN_MULTI_UNLOCK, in_pcbpurgeif0(), in_purgemaddrs(), inm_release_wait(), V_ripcbinfo, V_udbinfo, and V_ulitecbinfo.

Here is the call graph for this function:

◆ in_ifhasaddr()

int in_ifhasaddr ( struct ifnet *  ifp,
struct in_addr  in 
)

Definition at line 166 of file in.c.

References in_ifaddr::ia_addr, in_addr::s_addr, and sockaddr_in::sin_addr.

◆ in_ifscrub_all()

void in_ifscrub_all ( void  )

Definition at line 1158 of file in.c.

References igmp_domifdetach(), in_control(), and in_purgemaddrs().

Here is the call graph for this function:

◆ in_lltable_alloc()

static struct llentry * in_lltable_alloc ( struct lltable *  llt,
u_int  flags,
const struct sockaddr *  l3addr 
)
static

Definition at line 1533 of file in.c.

References in_lltable_destroy_lle_unlocked(), in_lltable_new(), in_lltable_rtcheck(), and sockaddr_in::sin_addr.

Referenced by in_lltattach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltable_delete_entry()

static void in_lltable_delete_entry ( struct lltable *  llt,
struct llentry *  lle 
)
static

Definition at line 1521 of file in.c.

Referenced by in_lltattach().

Here is the caller graph for this function:

◆ in_lltable_destroy_lle()

static void in_lltable_destroy_lle ( struct llentry *  lle)
static

Definition at line 1330 of file in.c.

References in_lltable_destroy_lle_unlocked().

Referenced by in_lltable_new().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltable_destroy_lle_unlocked()

static void in_lltable_destroy_lle_unlocked ( epoch_context_t  ctx)
static

Definition at line 1315 of file in.c.

Referenced by in_lltable_alloc(), and in_lltable_destroy_lle().

Here is the caller graph for this function:

◆ in_lltable_dump_entry()

static int in_lltable_dump_entry ( struct lltable *  llt,
struct llentry *  lle,
struct sysctl_req *  wr 
)
static

Definition at line 1621 of file in.c.

References RTF_ANNOUNCE.

Referenced by in_lltattach().

Here is the caller graph for this function:

◆ in_lltable_fill_sa_entry()

static void in_lltable_fill_sa_entry ( const struct llentry *  lle,
struct sockaddr *  sa 
)
static

Definition at line 1490 of file in.c.

References sockaddr_in::sin_addr, sockaddr_in::sin_family, and sockaddr_in::sin_len.

Referenced by in_lltattach().

Here is the caller graph for this function:

◆ in_lltable_find_dst()

static struct llentry * in_lltable_find_dst ( struct lltable *  llt,
struct in_addr  dst 
)
inlinestatic

Definition at line 1502 of file in.c.

References in_lltable_hash_dst(), and in_addr::s_addr.

Referenced by in_lltable_lookup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltable_free_entry()

static void in_lltable_free_entry ( struct lltable *  llt,
struct llentry *  lle 
)
static

Definition at line 1398 of file in.c.

Referenced by in_lltattach().

Here is the caller graph for this function:

◆ in_lltable_get()

struct lltable * in_lltable_get ( struct ifnet *  ifp)

Definition at line 1708 of file in.c.

◆ in_lltable_hash()

static uint32_t in_lltable_hash ( const struct llentry *  lle,
uint32_t  hsize 
)
static

Definition at line 1483 of file in.c.

References in_lltable_hash_dst().

Referenced by in_lltattach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltable_hash_dst()

static uint32_t in_lltable_hash_dst ( const struct in_addr  dst,
uint32_t  hsize 
)
inlinestatic

Definition at line 1476 of file in.c.

References IN_LLTBL_HASH, and in_addr::s_addr.

Referenced by in_lltable_find_dst(), and in_lltable_hash().

Here is the caller graph for this function:

◆ in_lltable_lookup()

static struct llentry * in_lltable_lookup ( struct lltable *  llt,
u_int  flags,
const struct sockaddr *  l3addr 
)
static

Definition at line 1583 of file in.c.

References in_lltable_find_dst(), and sockaddr_in::sin_addr.

Referenced by in_lltattach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltable_match_prefix()

static int in_lltable_match_prefix ( const struct sockaddr *  saddr,
const struct sockaddr *  smask,
u_int  flags,
struct llentry *  lle 
)
static

Definition at line 1365 of file in.c.

References IN_ARE_MASKED_ADDR_EQUAL, and in_addr::s_addr.

Referenced by in_lltattach().

Here is the caller graph for this function:

◆ in_lltable_new()

static struct llentry * in_lltable_new ( struct in_addr  addr4,
u_int  flags 
)
static

Definition at line 1338 of file in.c.

References in_llentry::base, and in_lltable_destroy_lle().

Referenced by in_lltable_alloc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltable_rtcheck()

static int in_lltable_rtcheck ( struct ifnet *  ifp,
u_int  flags,
const struct sockaddr *  l3addr 
)
static

Definition at line 1417 of file in.c.

References fib4_lookup(), IA_SIN, in_ifaddr::ia_subnetmask, IN_ARE_MASKED_ADDR_EQUAL, and in_addr::s_addr.

Referenced by in_lltable_alloc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_lltattach()

static struct lltable * in_lltattach ( struct ifnet *  ifp)
static

Definition at line 1685 of file in.c.

References in_lltable_alloc(), in_lltable_delete_entry(), in_lltable_dump_entry(), in_lltable_fill_sa_entry(), in_lltable_free_entry(), in_lltable_hash(), in_lltable_lookup(), in_lltable_match_prefix(), and IN_LLTBL_DEFAULT_HSIZE.

Referenced by in_domifattach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_localaddr()

int in_localaddr ( struct in_addr  in)

Definition at line 111 of file in.c.

References in_ifaddr::ia_subnet, in_ifaddr::ia_subnetmask, in_addr::s_addr, and V_in_ifaddrhead.

Referenced by tcp_mss_update().

Here is the caller graph for this function:

◆ in_localip()

bool in_localip ( struct in_addr  in)

Definition at line 131 of file in.c.

References IA_SIN, INADDR_HASH, and in_addr::s_addr.

Referenced by in_gif_set_running(), in_gre_set_running(), ip_output_pfil(), ip_tryforward(), tcp_input_with_port(), and tcp_twstart().

Here is the caller graph for this function:

◆ in_localip_fib()

bool in_localip_fib ( struct in_addr  in,
uint16_t  fib 
)

Definition at line 148 of file in.c.

References in_ifaddr::ia_ifa, IA_SIN, INADDR_HASH, and in_addr::s_addr.

Referenced by ip_input().

Here is the caller graph for this function:

◆ in_localip_more()

static struct in_ifaddr * in_localip_more ( struct in_ifaddr original_ia)
static

Definition at line 189 of file in.c.

References in_ifaddr::ia_ifa, IA_SIN, and INADDR_HASH.

Referenced by in_aifaddr_ioctl(), and in_scrubprefix().

Here is the caller graph for this function:

◆ in_match_ifaddr()

static int in_match_ifaddr ( const struct rtentry *  rt,
const struct nhop_object *  nh,
void *  arg 
)
static

Definition at line 768 of file in.c.

Referenced by in_handle_prefix_route().

Here is the caller graph for this function:

◆ in_purgemaddrs()

static void in_purgemaddrs ( struct ifnet *  ifp)
static

Definition at line 1268 of file in.c.

References ifma_restart, igmp_ifdetach(), IN_MULTI_LIST_LOCK, IN_MULTI_LIST_UNLOCK, inm_rele_locked(), inm_release_list_deferred(), and next.

Referenced by in_ifdetach(), and in_ifscrub_all().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_scrubprefix()

int in_scrubprefix ( struct in_ifaddr target,
u_int  flags 
)

Definition at line 1060 of file in.c.

References in_ifaddr::ia_addr, ia_getrtprefix(), in_ifaddr::ia_ifa, ia_need_loopback_route(), in_handle_ifaddr_route(), in_localip_more(), in_scrubprefixlle(), in_addr::s_addr, and V_in_ifaddrhead.

Referenced by carp_ifa_delroute(), in_aifaddr_ioctl(), and in_difaddr_ioctl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ in_scrubprefixlle()

static void in_scrubprefixlle ( struct in_ifaddr ia,
int  all,
u_int  flags 
)
static

Definition at line 1021 of file in.c.

References in_ifaddr::ia_addr, in_ifaddr::ia_subnetmask, LLTABLE, in_addr::s_addr, sockaddr_in::sin_addr, sockaddr_in::sin_family, and sockaddr_in::sin_len.

Referenced by in_scrubprefix().

Here is the caller graph for this function:

◆ in_socktrim()

static void in_socktrim ( struct sockaddr_in ap)
static

Definition at line 264 of file in.c.

References sockaddr_in::sin_addr, and sockaddr_in::sin_len.

Referenced by in_aifaddr_ioctl().

Here is the caller graph for this function:

◆ SX_SYSINIT()

SX_SYSINIT ( in_control_sx  ,
in_control_sx,
"in_control"   
)

◆ SYSCTL_BOOL()

SYSCTL_BOOL ( _net_inet_ip  ,
OID_AUTO  ,
broadcast_lowest  ,
CTLFLAG_VNET|  CTLFLAG_RW,
VNET_NAMEbroadcast_lowest,
,
"Treat lowest address on a subnet (host 0) as broadcast"   
)

◆ SYSCTL_INT()

SYSCTL_INT ( _net_inet_ip  ,
OID_AUTO  ,
no_same_prefix  ,
CTLFLAG_VNET|  CTLFLAG_RW,
VNET_NAMEnosameprefix,
,
"Refuse to create same prefixes on different interfaces"   
)

◆ VNET_DECLARE()

VNET_DECLARE ( struct inpcbinfo  ,
ripcbinfo   
)

◆ VNET_DEFINE_STATIC() [1/2]

VNET_DEFINE_STATIC ( bool  ,
broadcast_lowest   
)

◆ VNET_DEFINE_STATIC() [2/2]

VNET_DEFINE_STATIC ( int  ,
nosameprefix   
)

Variable Documentation

◆ in_control_sx

struct sx in_control_sx
static

Definition at line 103 of file in.c.

Referenced by in_aifaddr_ioctl(), in_control(), and in_difaddr_ioctl().