/*
* Copyright (C) 2014 Freie Universität Berlin.
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* socket_base/in.h - Constants defined by the internet system, per RFC 790,
* September 1981, and numerous additions, inspired by
* netinet/in.h definitions.
* @{
* @file
* @brief IP next header constants
* @see
* RFC790 - Assigned Numbers
*
* @see
* IEEE Std 1003.1, 2013 Edition - netinet/in.h
*
* @see
* IANA - Protocol Numbers
*
* @author Oliver Gesch
* @author Martin Lenders
*/
#ifndef SOCKET_BASE_IN_H
#define SOCKET_BASE_IN_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* Protocols (RFC 1700) TODO: may be deleted due to some double definition
* in sys/net/sixlowpan/include/sixlowpan/ip.h
*/
#define IPPROTO_IP (0) ///< dummy for IP
#define IPPROTO_HOPOPTS (0) ///< IP6 hop-by-hop options
#define IPPROTO_ICMP (1) ///< control message protocol
#define IPPROTO_IGMP (2) ///< group mgmt protocol
#define IPPROTO_GGP (3) ///< gateway^2 (deprecated)
#define IPPROTO_IPV4 (4) ///< IPv4 encapsulation
#define IPPROTO_IPIP IPPROTO_IPV4 ///< for compatibility
#define IPPROTO_TCP (6) ///< tcp
#define IPPROTO_ST (7) ///< Stream protocol II
#define IPPROTO_EGP (8) ///< exterior gateway protocol
#define IPPROTO_PIGP (9) ///< private interior gateway
#define IPPROTO_RCCMON (10) ///< BBN RCC Monitoring
#define IPPROTO_NVPII (11) ///< network voice protocol
#define IPPROTO_PUP (12) ///< pup
#define IPPROTO_ARGUS (13) ///< Argus
#define IPPROTO_EMCON (14) ///< EMCON
#define IPPROTO_XNET (15) ///< Cross Net Debugger
#define IPPROTO_CHAOS (16) ///< Chaos
#define IPPROTO_UDP (17) ///< user datagram protocol
#define IPPROTO_MUX (18) ///< Multiplexing
#define IPPROTO_MEAS (19) ///< DCN Measurement Subsystems
#define IPPROTO_HMP (20) ///< Host Monitoring
#define IPPROTO_PRM (21) ///< Packet Radio Measurement
#define IPPROTO_IDP (22) ///< xns idp
#define IPPROTO_TRUNK1 (23) ///< Trunk-1
#define IPPROTO_TRUNK2 (24) ///< Trunk-2
#define IPPROTO_LEAF1 (25) ///< Leaf-1
#define IPPROTO_LEAF2 (26) ///< Leaf-2
#define IPPROTO_RDP (27) ///< Reliable Data
#define IPPROTO_IRTP (28) ///< Reliable Transaction
#define IPPROTO_TP (29) ///< tp-4 w/ class negotiation
#define IPPROTO_BLT (30) ///< Bulk Data Transfer
#define IPPROTO_NSP (31) ///< Network Services
#define IPPROTO_INP (32) ///< Merit Internodal
#define IPPROTO_SEP (33) ///< Sequential Exchange
#define IPPROTO_3PC (34) ///< Third Party Connect
#define IPPROTO_IDPR (35) ///< InterDomain Policy Routing
#define IPPROTO_XTP (36) ///< XTP
#define IPPROTO_DDP (37) ///< Datagram Delivery
#define IPPROTO_CMTP (38) ///< Control Message Transport
#define IPPROTO_TPXX (39) ///< TP++ Transport
#define IPPROTO_IL (40) ///< IL transport protocol
#define IPPROTO_IPV6 (41) ///< IP6 header
#define IPPROTO_SDRP (42) ///< Source Demand Routing
#define IPPROTO_ROUTING (43) ///< IP6 routing header
#define IPPROTO_FRAGMENT (44) ///< IP6 fragmentation header
#define IPPROTO_IDRP (45) ///< InterDomain Routing
#define IPPROTO_RSVP (46) ///< resource reservation
#define IPPROTO_GRE (47) ///< General Routing Encap.
#define IPPROTO_MHRP (48) ///< Mobile Host Routing
#define IPPROTO_BHA (49) ///< BHA
#define IPPROTO_ESP (50) ///< IP6 Encap Sec. Payload
#define IPPROTO_AH (51) ///< IP6 Auth Header
#define IPPROTO_INLSP (52) ///< Integ. Net Layer Security
#define IPPROTO_SWIPE (53) ///< IP with encryption
#define IPPROTO_NHRP (54) ///< Next Hop Resolution
///< 55-57: Unassigned
#define IPPROTO_ICMPV6 (58) ///< ICMP6
#define IPPROTO_NONE (59) ///< IP6 no next header
#define IPPROTO_DSTOPTS (60) ///< IP6 destination option
#define IPPROTO_AHIP (61) ///< any host internal protocol
#define IPPROTO_CFTP (62) ///< CFTP
#define IPPROTO_HELLO (63) ///< "hello" routing protocol
#define IPPROTO_SATEXPAK (64) ///< SATNET/Backroom EXPAK
#define IPPROTO_KRYPTOLAN (65) ///< Kryptolan
#define IPPROTO_RVD (66) ///< Remote Virtual Disk
#define IPPROTO_IPPC (67) ///< Pluribus Packet Core
#define IPPROTO_ADFS (68) ///< Any distributed FS
#define IPPROTO_SATMON (69) ///< Satnet Monitoring
#define IPPROTO_VISA (70) ///< VISA Protocol
#define IPPROTO_IPCV (71) ///< Packet Core Utility
#define IPPROTO_CPNX (72) ///< Comp. Prot. Net. Executive
#define IPPROTO_CPHB (73) ///< Comp. Prot. HeartBeat
#define IPPROTO_WSN (74) ///< Wang Span Network
#define IPPROTO_PVP (75) ///< Packet Video Protocol
#define IPPROTO_BRSATMON (76) ///< BackRoom SATNET Monitoring
#define IPPROTO_ND (77) ///< Sun net disk proto (temp.)
#define IPPROTO_WBMON (78) ///< WIDEBAND Monitoring
#define IPPROTO_WBEXPAK (79) ///< WIDEBAND EXPAK
#define IPPROTO_EON (80) ///< ISO cnlp
#define IPPROTO_VMTP (81) ///< VMTP
#define IPPROTO_SVMTP (82) ///< Secure VMTP
#define IPPROTO_VINES (83) ///< Banyon VINES
#define IPPROTO_TTP (84) ///< TTP
#define IPPROTO_IGP (85) ///< NSFNET-IGP
#define IPPROTO_DGP (86) ///< dissimilar gateway prot.
#define IPPROTO_TCF (87) ///< TCF
#define IPPROTO_IGRP (88) ///< Cisco/GXS IGRP
#define IPPROTO_OSPFIGP (89) ///< OSPFIGP
#define IPPROTO_SRPC (90) ///< Strite RPC protocol
#define IPPROTO_LARP (91) ///< Locus Address Resoloution
#define IPPROTO_MTP (92) ///< Multicast Transport
#define IPPROTO_AX25 (93) ///< AX.25 Frames
#define IPPROTO_IPEIP (94) ///< IP encapsulated in IP
#define IPPROTO_MICP (95) ///< Mobile Int.ing control
#define IPPROTO_SCCSP (96) ///< Semaphore Comm. security
#define IPPROTO_ETHERIP (97) ///< Ethernet IP encapsulation
#define IPPROTO_ENCAP (98) ///< encapsulation header
#define IPPROTO_APES (99) ///< any private encr. scheme
#define IPPROTO_GMTP (100) ///< GMTP
#define IPPROTO_IPCOMP (108) ///< payload compression (IPComp)
/**
* 101-254: Partly Unassigned
*/
#define IPPROTO_PIM (103) ///< Protocol Independent Mcast
#define IPPROTO_PGM (113) ///< PGM
/* 255: Reserved */
/* */
#define IPPROTO_DIVERT (254) ///< divert pseudo-protocol (BSD Private, local use, namespace incursion)
#define IPPROTO_RAW (255) ///< raw IP packet
#define IPPROTO_MAX (256)
#define IPPROTO_DONE (257) ///< last return value of *_input(), meaning "all job for this pkt is done".
#define IN_LOOPBACKNET (127) ///< official!
#ifdef __cplusplus
}
#endif
#endif /* SOCKET_BASE_IN_H */