1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2607ca46eSDavid Howells /* 3607ca46eSDavid Howells * INET An implementation of the TCP/IP protocol suite for the LINUX 4607ca46eSDavid Howells * operating system. INET is implemented using the BSD Socket 5607ca46eSDavid Howells * interface as the means of communication with the user level. 6607ca46eSDavid Howells * 7607ca46eSDavid Howells * Definitions of the Internet Protocol. 8607ca46eSDavid Howells * 9607ca46eSDavid Howells * Version: @(#)in.h 1.0.1 04/21/93 10607ca46eSDavid Howells * 11607ca46eSDavid Howells * Authors: Original taken from the GNU Project <netinet/in.h> file. 12607ca46eSDavid Howells * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> 13607ca46eSDavid Howells * 14607ca46eSDavid Howells * This program is free software; you can redistribute it and/or 15607ca46eSDavid Howells * modify it under the terms of the GNU General Public License 16607ca46eSDavid Howells * as published by the Free Software Foundation; either version 17607ca46eSDavid Howells * 2 of the License, or (at your option) any later version. 18607ca46eSDavid Howells */ 19607ca46eSDavid Howells #ifndef _UAPI_LINUX_IN_H 20607ca46eSDavid Howells #define _UAPI_LINUX_IN_H 21607ca46eSDavid Howells 22607ca46eSDavid Howells #include <linux/types.h> 23aec1dc97SAndrii Nakryiko #include <linux/stddef.h> 24279c6c7fSStephen Hemminger #include <linux/libc-compat.h> 25607ca46eSDavid Howells #include <linux/socket.h> 26607ca46eSDavid Howells 27279c6c7fSStephen Hemminger #if __UAPI_DEF_IN_IPPROTO 28607ca46eSDavid Howells /* Standard well-defined IP protocols. */ 29607ca46eSDavid Howells enum { 30607ca46eSDavid Howells IPPROTO_IP = 0, /* Dummy protocol for TCP */ 31cfd280c9SCarlos O'Donell #define IPPROTO_IP IPPROTO_IP 32607ca46eSDavid Howells IPPROTO_ICMP = 1, /* Internet Control Message Protocol */ 33cfd280c9SCarlos O'Donell #define IPPROTO_ICMP IPPROTO_ICMP 34607ca46eSDavid Howells IPPROTO_IGMP = 2, /* Internet Group Management Protocol */ 35cfd280c9SCarlos O'Donell #define IPPROTO_IGMP IPPROTO_IGMP 36607ca46eSDavid Howells IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */ 37cfd280c9SCarlos O'Donell #define IPPROTO_IPIP IPPROTO_IPIP 38607ca46eSDavid Howells IPPROTO_TCP = 6, /* Transmission Control Protocol */ 39cfd280c9SCarlos O'Donell #define IPPROTO_TCP IPPROTO_TCP 40607ca46eSDavid Howells IPPROTO_EGP = 8, /* Exterior Gateway Protocol */ 41cfd280c9SCarlos O'Donell #define IPPROTO_EGP IPPROTO_EGP 42607ca46eSDavid Howells IPPROTO_PUP = 12, /* PUP protocol */ 43cfd280c9SCarlos O'Donell #define IPPROTO_PUP IPPROTO_PUP 44607ca46eSDavid Howells IPPROTO_UDP = 17, /* User Datagram Protocol */ 45cfd280c9SCarlos O'Donell #define IPPROTO_UDP IPPROTO_UDP 46607ca46eSDavid Howells IPPROTO_IDP = 22, /* XNS IDP protocol */ 47cfd280c9SCarlos O'Donell #define IPPROTO_IDP IPPROTO_IDP 48cfd280c9SCarlos O'Donell IPPROTO_TP = 29, /* SO Transport Protocol Class 4 */ 49cfd280c9SCarlos O'Donell #define IPPROTO_TP IPPROTO_TP 50607ca46eSDavid Howells IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */ 51cfd280c9SCarlos O'Donell #define IPPROTO_DCCP IPPROTO_DCCP 52607ca46eSDavid Howells IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */ 53cfd280c9SCarlos O'Donell #define IPPROTO_IPV6 IPPROTO_IPV6 54cfd280c9SCarlos O'Donell IPPROTO_RSVP = 46, /* RSVP Protocol */ 55cfd280c9SCarlos O'Donell #define IPPROTO_RSVP IPPROTO_RSVP 56cfd280c9SCarlos O'Donell IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */ 57cfd280c9SCarlos O'Donell #define IPPROTO_GRE IPPROTO_GRE 58607ca46eSDavid Howells IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */ 59cfd280c9SCarlos O'Donell #define IPPROTO_ESP IPPROTO_ESP 60607ca46eSDavid Howells IPPROTO_AH = 51, /* Authentication Header protocol */ 61cfd280c9SCarlos O'Donell #define IPPROTO_AH IPPROTO_AH 62cfd280c9SCarlos O'Donell IPPROTO_MTP = 92, /* Multicast Transport Protocol */ 63cfd280c9SCarlos O'Donell #define IPPROTO_MTP IPPROTO_MTP 64607ca46eSDavid Howells IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */ 65cfd280c9SCarlos O'Donell #define IPPROTO_BEETPH IPPROTO_BEETPH 66cfd280c9SCarlos O'Donell IPPROTO_ENCAP = 98, /* Encapsulation Header */ 67cfd280c9SCarlos O'Donell #define IPPROTO_ENCAP IPPROTO_ENCAP 68607ca46eSDavid Howells IPPROTO_PIM = 103, /* Protocol Independent Multicast */ 69cfd280c9SCarlos O'Donell #define IPPROTO_PIM IPPROTO_PIM 70cfd280c9SCarlos O'Donell IPPROTO_COMP = 108, /* Compression Header Protocol */ 71cfd280c9SCarlos O'Donell #define IPPROTO_COMP IPPROTO_COMP 7265b32f80SWojciech Drewek IPPROTO_L2TP = 115, /* Layer 2 Tunnelling Protocol */ 7365b32f80SWojciech Drewek #define IPPROTO_L2TP IPPROTO_L2TP 74607ca46eSDavid Howells IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ 75cfd280c9SCarlos O'Donell #define IPPROTO_SCTP IPPROTO_SCTP 76607ca46eSDavid Howells IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */ 77cfd280c9SCarlos O'Donell #define IPPROTO_UDPLITE IPPROTO_UDPLITE 78730fc437STom Herbert IPPROTO_MPLS = 137, /* MPLS in IP (RFC 4023) */ 79730fc437STom Herbert #define IPPROTO_MPLS IPPROTO_MPLS 8026776253SPaolo Lungaroni IPPROTO_ETHERNET = 143, /* Ethernet-within-IPv6 Encapsulation */ 8126776253SPaolo Lungaroni #define IPPROTO_ETHERNET IPPROTO_ETHERNET 82607ca46eSDavid Howells IPPROTO_RAW = 255, /* Raw IP packets */ 83cfd280c9SCarlos O'Donell #define IPPROTO_RAW IPPROTO_RAW 84faf391c3SMat Martineau IPPROTO_MPTCP = 262, /* Multipath TCP connection */ 85faf391c3SMat Martineau #define IPPROTO_MPTCP IPPROTO_MPTCP 86607ca46eSDavid Howells IPPROTO_MAX 87607ca46eSDavid Howells }; 88279c6c7fSStephen Hemminger #endif 89607ca46eSDavid Howells 90279c6c7fSStephen Hemminger #if __UAPI_DEF_IN_ADDR 91607ca46eSDavid Howells /* Internet address. */ 92607ca46eSDavid Howells struct in_addr { 93607ca46eSDavid Howells __be32 s_addr; 94607ca46eSDavid Howells }; 95279c6c7fSStephen Hemminger #endif 96607ca46eSDavid Howells 97607ca46eSDavid Howells #define IP_TOS 1 98607ca46eSDavid Howells #define IP_TTL 2 99607ca46eSDavid Howells #define IP_HDRINCL 3 100607ca46eSDavid Howells #define IP_OPTIONS 4 101607ca46eSDavid Howells #define IP_ROUTER_ALERT 5 102607ca46eSDavid Howells #define IP_RECVOPTS 6 103607ca46eSDavid Howells #define IP_RETOPTS 7 104607ca46eSDavid Howells #define IP_PKTINFO 8 105607ca46eSDavid Howells #define IP_PKTOPTIONS 9 106607ca46eSDavid Howells #define IP_MTU_DISCOVER 10 107607ca46eSDavid Howells #define IP_RECVERR 11 108607ca46eSDavid Howells #define IP_RECVTTL 12 109607ca46eSDavid Howells #define IP_RECVTOS 13 110607ca46eSDavid Howells #define IP_MTU 14 111607ca46eSDavid Howells #define IP_FREEBIND 15 112607ca46eSDavid Howells #define IP_IPSEC_POLICY 16 113607ca46eSDavid Howells #define IP_XFRM_POLICY 17 114607ca46eSDavid Howells #define IP_PASSSEC 18 115607ca46eSDavid Howells #define IP_TRANSPARENT 19 116607ca46eSDavid Howells 117607ca46eSDavid Howells /* BSD compatibility */ 118607ca46eSDavid Howells #define IP_RECVRETOPTS IP_RETOPTS 119607ca46eSDavid Howells 120607ca46eSDavid Howells /* TProxy original addresses */ 121607ca46eSDavid Howells #define IP_ORIGDSTADDR 20 122607ca46eSDavid Howells #define IP_RECVORIGDSTADDR IP_ORIGDSTADDR 123607ca46eSDavid Howells 124607ca46eSDavid Howells #define IP_MINTTL 21 125607ca46eSDavid Howells #define IP_NODEFRAG 22 126ad6f939aSTom Herbert #define IP_CHECKSUM 23 12790c337daSEric Dumazet #define IP_BIND_ADDRESS_NO_PORT 24 12870ecc248SWillem de Bruijn #define IP_RECVFRAGSIZE 25 129eba75c58SWillem de Bruijn #define IP_RECVERR_RFC4884 26 130607ca46eSDavid Howells 131607ca46eSDavid Howells /* IP_MTU_DISCOVER values */ 132607ca46eSDavid Howells #define IP_PMTUDISC_DONT 0 /* Never send DF frames */ 133607ca46eSDavid Howells #define IP_PMTUDISC_WANT 1 /* Use per route hints */ 134607ca46eSDavid Howells #define IP_PMTUDISC_DO 2 /* Always DF */ 135607ca46eSDavid Howells #define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu */ 136482fc609SHannes Frederic Sowa /* Always use interface mtu (ignores dst pmtu) but don't set DF flag. 137482fc609SHannes Frederic Sowa * Also incoming ICMP frag_needed notifications will be ignored on 138482fc609SHannes Frederic Sowa * this socket to prevent accepting spoofed ones. 139482fc609SHannes Frederic Sowa */ 140482fc609SHannes Frederic Sowa #define IP_PMTUDISC_INTERFACE 4 141645f0897SMiaohe Lin /* weaker version of IP_PMTUDISC_INTERFACE, which allows packets to get 1421b346576SHannes Frederic Sowa * fragmented if they exeed the interface mtu 1431b346576SHannes Frederic Sowa */ 1441b346576SHannes Frederic Sowa #define IP_PMTUDISC_OMIT 5 145607ca46eSDavid Howells 146607ca46eSDavid Howells #define IP_MULTICAST_IF 32 147607ca46eSDavid Howells #define IP_MULTICAST_TTL 33 148607ca46eSDavid Howells #define IP_MULTICAST_LOOP 34 149607ca46eSDavid Howells #define IP_ADD_MEMBERSHIP 35 150607ca46eSDavid Howells #define IP_DROP_MEMBERSHIP 36 151607ca46eSDavid Howells #define IP_UNBLOCK_SOURCE 37 152607ca46eSDavid Howells #define IP_BLOCK_SOURCE 38 153607ca46eSDavid Howells #define IP_ADD_SOURCE_MEMBERSHIP 39 154607ca46eSDavid Howells #define IP_DROP_SOURCE_MEMBERSHIP 40 155607ca46eSDavid Howells #define IP_MSFILTER 41 156607ca46eSDavid Howells #define MCAST_JOIN_GROUP 42 157607ca46eSDavid Howells #define MCAST_BLOCK_SOURCE 43 158607ca46eSDavid Howells #define MCAST_UNBLOCK_SOURCE 44 159607ca46eSDavid Howells #define MCAST_LEAVE_GROUP 45 160607ca46eSDavid Howells #define MCAST_JOIN_SOURCE_GROUP 46 161607ca46eSDavid Howells #define MCAST_LEAVE_SOURCE_GROUP 47 162607ca46eSDavid Howells #define MCAST_MSFILTER 48 163607ca46eSDavid Howells #define IP_MULTICAST_ALL 49 164607ca46eSDavid Howells #define IP_UNICAST_IF 50 16591d0b78cSJakub Sitnicki #define IP_LOCAL_PORT_RANGE 51 166*3632679dSNicolas Dichtel #define IP_PROTOCOL 52 167607ca46eSDavid Howells 168607ca46eSDavid Howells #define MCAST_EXCLUDE 0 169607ca46eSDavid Howells #define MCAST_INCLUDE 1 170607ca46eSDavid Howells 171607ca46eSDavid Howells /* These need to appear somewhere around here */ 172607ca46eSDavid Howells #define IP_DEFAULT_MULTICAST_TTL 1 173607ca46eSDavid Howells #define IP_DEFAULT_MULTICAST_LOOP 1 174607ca46eSDavid Howells 175607ca46eSDavid Howells /* Request struct for multicast socket ops */ 176607ca46eSDavid Howells 177279c6c7fSStephen Hemminger #if __UAPI_DEF_IP_MREQ 178607ca46eSDavid Howells struct ip_mreq { 179607ca46eSDavid Howells struct in_addr imr_multiaddr; /* IP multicast address of group */ 180607ca46eSDavid Howells struct in_addr imr_interface; /* local IP address of interface */ 181607ca46eSDavid Howells }; 182607ca46eSDavid Howells 183607ca46eSDavid Howells struct ip_mreqn { 184607ca46eSDavid Howells struct in_addr imr_multiaddr; /* IP multicast address of group */ 185607ca46eSDavid Howells struct in_addr imr_address; /* local IP address of interface */ 186607ca46eSDavid Howells int imr_ifindex; /* Interface index */ 187607ca46eSDavid Howells }; 188607ca46eSDavid Howells 189607ca46eSDavid Howells struct ip_mreq_source { 190607ca46eSDavid Howells __be32 imr_multiaddr; 191607ca46eSDavid Howells __be32 imr_interface; 192607ca46eSDavid Howells __be32 imr_sourceaddr; 193607ca46eSDavid Howells }; 194607ca46eSDavid Howells 195607ca46eSDavid Howells struct ip_msfilter { 196607ca46eSDavid Howells __be32 imsf_multiaddr; 197607ca46eSDavid Howells __be32 imsf_interface; 198607ca46eSDavid Howells __u32 imsf_fmode; 199607ca46eSDavid Howells __u32 imsf_numsrc; 2005854a09bSGustavo A. R. Silva union { 2015854a09bSGustavo A. R. Silva __be32 imsf_slist[1]; 2025854a09bSGustavo A. R. Silva __DECLARE_FLEX_ARRAY(__be32, imsf_slist_flex); 2032d3e5cafSGustavo A. R. Silva }; 204607ca46eSDavid Howells }; 205607ca46eSDavid Howells 206607ca46eSDavid Howells #define IP_MSFILTER_SIZE(numsrc) \ 207607ca46eSDavid Howells (sizeof(struct ip_msfilter) - sizeof(__u32) \ 208607ca46eSDavid Howells + (numsrc) * sizeof(__u32)) 209607ca46eSDavid Howells 210607ca46eSDavid Howells struct group_req { 211607ca46eSDavid Howells __u32 gr_interface; /* interface index */ 212607ca46eSDavid Howells struct __kernel_sockaddr_storage gr_group; /* group address */ 213607ca46eSDavid Howells }; 214607ca46eSDavid Howells 215607ca46eSDavid Howells struct group_source_req { 216607ca46eSDavid Howells __u32 gsr_interface; /* interface index */ 217607ca46eSDavid Howells struct __kernel_sockaddr_storage gsr_group; /* group address */ 218607ca46eSDavid Howells struct __kernel_sockaddr_storage gsr_source; /* source address */ 219607ca46eSDavid Howells }; 220607ca46eSDavid Howells 221607ca46eSDavid Howells struct group_filter { 222db243b79SGustavo A. R. Silva union { 223db243b79SGustavo A. R. Silva struct { 224db243b79SGustavo A. R. Silva __u32 gf_interface_aux; /* interface index */ 225db243b79SGustavo A. R. Silva struct __kernel_sockaddr_storage gf_group_aux; /* multicast address */ 226db243b79SGustavo A. R. Silva __u32 gf_fmode_aux; /* filter mode */ 227db243b79SGustavo A. R. Silva __u32 gf_numsrc_aux; /* number of sources */ 228db243b79SGustavo A. R. Silva struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */ 229db243b79SGustavo A. R. Silva }; 230db243b79SGustavo A. R. Silva struct { 231607ca46eSDavid Howells __u32 gf_interface; /* interface index */ 232607ca46eSDavid Howells struct __kernel_sockaddr_storage gf_group; /* multicast address */ 233607ca46eSDavid Howells __u32 gf_fmode; /* filter mode */ 234607ca46eSDavid Howells __u32 gf_numsrc; /* number of sources */ 235db243b79SGustavo A. R. Silva struct __kernel_sockaddr_storage gf_slist_flex[]; /* interface index */ 236db243b79SGustavo A. R. Silva }; 237db243b79SGustavo A. R. Silva }; 238607ca46eSDavid Howells }; 239607ca46eSDavid Howells 240607ca46eSDavid Howells #define GROUP_FILTER_SIZE(numsrc) \ 241607ca46eSDavid Howells (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \ 242607ca46eSDavid Howells + (numsrc) * sizeof(struct __kernel_sockaddr_storage)) 243279c6c7fSStephen Hemminger #endif 244607ca46eSDavid Howells 245279c6c7fSStephen Hemminger #if __UAPI_DEF_IN_PKTINFO 246607ca46eSDavid Howells struct in_pktinfo { 247607ca46eSDavid Howells int ipi_ifindex; 248607ca46eSDavid Howells struct in_addr ipi_spec_dst; 249607ca46eSDavid Howells struct in_addr ipi_addr; 250607ca46eSDavid Howells }; 251279c6c7fSStephen Hemminger #endif 252607ca46eSDavid Howells 253607ca46eSDavid Howells /* Structure describing an Internet (IP) socket address. */ 254279c6c7fSStephen Hemminger #if __UAPI_DEF_SOCKADDR_IN 255607ca46eSDavid Howells #define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */ 256607ca46eSDavid Howells struct sockaddr_in { 257607ca46eSDavid Howells __kernel_sa_family_t sin_family; /* Address family */ 258607ca46eSDavid Howells __be16 sin_port; /* Port number */ 259607ca46eSDavid Howells struct in_addr sin_addr; /* Internet address */ 260607ca46eSDavid Howells 261607ca46eSDavid Howells /* Pad to size of `struct sockaddr'. */ 262607ca46eSDavid Howells unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) - 263607ca46eSDavid Howells sizeof(unsigned short int) - sizeof(struct in_addr)]; 264607ca46eSDavid Howells }; 265607ca46eSDavid Howells #define sin_zero __pad /* for BSD UNIX comp. -FvK */ 266279c6c7fSStephen Hemminger #endif 267607ca46eSDavid Howells 268279c6c7fSStephen Hemminger #if __UAPI_DEF_IN_CLASS 269607ca46eSDavid Howells /* 270607ca46eSDavid Howells * Definitions of the bits in an Internet address integer. 271607ca46eSDavid Howells * On subnets, host and network parts are found according 272607ca46eSDavid Howells * to the subnet mask, not these masks. 273607ca46eSDavid Howells */ 274607ca46eSDavid Howells #define IN_CLASSA(a) ((((long int) (a)) & 0x80000000) == 0) 275607ca46eSDavid Howells #define IN_CLASSA_NET 0xff000000 276607ca46eSDavid Howells #define IN_CLASSA_NSHIFT 24 277607ca46eSDavid Howells #define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET) 278607ca46eSDavid Howells #define IN_CLASSA_MAX 128 279607ca46eSDavid Howells 280607ca46eSDavid Howells #define IN_CLASSB(a) ((((long int) (a)) & 0xc0000000) == 0x80000000) 281607ca46eSDavid Howells #define IN_CLASSB_NET 0xffff0000 282607ca46eSDavid Howells #define IN_CLASSB_NSHIFT 16 283607ca46eSDavid Howells #define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET) 284607ca46eSDavid Howells #define IN_CLASSB_MAX 65536 285607ca46eSDavid Howells 286607ca46eSDavid Howells #define IN_CLASSC(a) ((((long int) (a)) & 0xe0000000) == 0xc0000000) 287607ca46eSDavid Howells #define IN_CLASSC_NET 0xffffff00 288607ca46eSDavid Howells #define IN_CLASSC_NSHIFT 8 289607ca46eSDavid Howells #define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET) 290607ca46eSDavid Howells 291607ca46eSDavid Howells #define IN_CLASSD(a) ((((long int) (a)) & 0xf0000000) == 0xe0000000) 292607ca46eSDavid Howells #define IN_MULTICAST(a) IN_CLASSD(a) 29365cab850SDave Taht #define IN_MULTICAST_NET 0xe0000000 294607ca46eSDavid Howells 295f275ee0fSGreg Kroah-Hartman #define IN_BADCLASS(a) (((long int) (a) ) == (long int)0xffffffff) 29665cab850SDave Taht #define IN_EXPERIMENTAL(a) IN_BADCLASS((a)) 29765cab850SDave Taht 29865cab850SDave Taht #define IN_CLASSE(a) ((((long int) (a)) & 0xf0000000) == 0xf0000000) 29965cab850SDave Taht #define IN_CLASSE_NET 0xffffffff 30065cab850SDave Taht #define IN_CLASSE_NSHIFT 0 301607ca46eSDavid Howells 302607ca46eSDavid Howells /* Address to accept any incoming messages. */ 303607ca46eSDavid Howells #define INADDR_ANY ((unsigned long int) 0x00000000) 304607ca46eSDavid Howells 305607ca46eSDavid Howells /* Address to send to all hosts. */ 306607ca46eSDavid Howells #define INADDR_BROADCAST ((unsigned long int) 0xffffffff) 307607ca46eSDavid Howells 308607ca46eSDavid Howells /* Address indicating an error return. */ 309607ca46eSDavid Howells #define INADDR_NONE ((unsigned long int) 0xffffffff) 310607ca46eSDavid Howells 31132182747SToke Høiland-Jørgensen /* Dummy address for src of ICMP replies if no real address is set (RFC7600). */ 31232182747SToke Høiland-Jørgensen #define INADDR_DUMMY ((unsigned long int) 0xc0000008) 31332182747SToke Høiland-Jørgensen 314607ca46eSDavid Howells /* Network number for local host loopback. */ 315607ca46eSDavid Howells #define IN_LOOPBACKNET 127 316607ca46eSDavid Howells 317607ca46eSDavid Howells /* Address to loopback in software to local host. */ 318607ca46eSDavid Howells #define INADDR_LOOPBACK 0x7f000001 /* 127.0.0.1 */ 319607ca46eSDavid Howells #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000) 320607ca46eSDavid Howells 321607ca46eSDavid Howells /* Defines for Multicast INADDR */ 322607ca46eSDavid Howells #define INADDR_UNSPEC_GROUP 0xe0000000U /* 224.0.0.0 */ 323607ca46eSDavid Howells #define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */ 324607ca46eSDavid Howells #define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */ 3254effd28cSLinus Lüssing #define INADDR_ALLSNOOPERS_GROUP 0xe000006aU /* 224.0.0.106 */ 326607ca46eSDavid Howells #define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */ 327279c6c7fSStephen Hemminger #endif 328607ca46eSDavid Howells 329607ca46eSDavid Howells /* <asm/byteorder.h> contains the htonl type stuff.. */ 330607ca46eSDavid Howells #include <asm/byteorder.h> 331607ca46eSDavid Howells 332607ca46eSDavid Howells 333607ca46eSDavid Howells #endif /* _UAPI_LINUX_IN_H */ 334