RTP Audio System
2.0.0
|
00001 /* 00002 * $Id: tdin6.h 1259 2011-12-17 13:26:09Z dreibh $ 00003 * 00004 * SocketAPI implementation for the sctplib. 00005 * Copyright (C) 1999-2012 by Thomas Dreibholz 00006 * 00007 * Realized in co-operation between 00008 * - Siemens AG 00009 * - University of Essen, Institute of Computer Networking Technology 00010 * - University of Applied Sciences, Muenster 00011 * 00012 * Acknowledgement 00013 * This work was partially funded by the Bundesministerium fuer Bildung und 00014 * Forschung (BMBF) of the Federal Republic of Germany (Foerderkennzeichen 01AK045). 00015 * The authors alone are responsible for the contents. 00016 * 00017 * This program is free software: you can redistribute it and/or modify 00018 * it under the terms of the GNU General Public License as published by 00019 * the Free Software Foundation, either version 3 of the License, or 00020 * (at your option) any later version. 00021 00022 * This program is distributed in the hope that it will be useful, 00023 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00025 * GNU General Public License for more details. 00026 * 00027 * You should have received a copy of the GNU General Public License 00028 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00029 * 00030 * Contact: discussion@sctp.de 00031 * dreibh@iem.uni-due.de 00032 * tuexen@fh-muenster.de 00033 * 00034 * Purpose: IPv6 definitions 00035 * 00036 */ 00037 00038 00047 #include "tdsystem.h" 00048 00049 00050 #ifndef _LINUX_IN6_H 00051 #define _LINUX_IN6_H 00052 00053 00054 #if (SYSTEM == OS_Linux) 00055 00056 00057 #include <linux/types.h> 00058 00059 00060 struct in6_flowlabel_req 00061 { 00062 struct in6_addr flr_dst; 00063 __u32 flr_label; 00064 __u8 flr_action; 00065 __u8 flr_share; 00066 __u16 flr_flags; 00067 __u16 flr_expires; 00068 __u16 flr_linger; 00069 __u32 __flr_pad; 00070 /* Options in format of IPV6_PKTOPTIONS */ 00071 }; 00072 00073 #define IPV6_FL_A_GET 0 00074 #define IPV6_FL_A_PUT 1 00075 #define IPV6_FL_A_RENEW 2 00076 00077 #define IPV6_FL_F_CREATE 1 00078 #define IPV6_FL_F_EXCL 2 00079 00080 #define IPV6_FL_S_NONE 0 00081 #define IPV6_FL_S_EXCL 1 00082 #define IPV6_FL_S_PROCESS 2 00083 #define IPV6_FL_S_USER 3 00084 #define IPV6_FL_S_ANY 255 00085 00086 00087 /* 00088 * Bitmask constant declarations to help applications select out the 00089 * flow label and priority fields. 00090 * 00091 * Note that this are in host byte order while the flowinfo field of 00092 * sockaddr_in6 is in network byte order. 00093 */ 00094 00095 #define IPV6_FLOWINFO_FLOWLABEL 0x000fffff 00096 #define IPV6_FLOWINFO_PRIORITY 0x0ff00000 00097 00098 /* These defintions are obsolete */ 00099 #define IPV6_PRIORITY_UNCHARACTERIZED 0x0000 00100 #define IPV6_PRIORITY_FILLER 0x0100 00101 #define IPV6_PRIORITY_UNATTENDED 0x0200 00102 #define IPV6_PRIORITY_RESERVED1 0x0300 00103 #define IPV6_PRIORITY_BULK 0x0400 00104 #define IPV6_PRIORITY_RESERVED2 0x0500 00105 #define IPV6_PRIORITY_INTERACTIVE 0x0600 00106 #define IPV6_PRIORITY_CONTROL 0x0700 00107 #define IPV6_PRIORITY_8 0x0800 00108 #define IPV6_PRIORITY_9 0x0900 00109 #define IPV6_PRIORITY_10 0x0a00 00110 #define IPV6_PRIORITY_11 0x0b00 00111 #define IPV6_PRIORITY_12 0x0c00 00112 #define IPV6_PRIORITY_13 0x0d00 00113 #define IPV6_PRIORITY_14 0x0e00 00114 #define IPV6_PRIORITY_15 0x0f00 00115 00116 /* 00117 * IPv6 TLV options. 00118 */ 00119 #define IPV6_TLV_PAD0 0 00120 #define IPV6_TLV_PADN 1 00121 #define IPV6_TLV_ROUTERALERT 20 00122 #define IPV6_TLV_JUMBO 194 00123 00124 /* 00125 * IPV6 socket options 00126 */ 00127 00128 /* 00129 #define IPV6_ADDRFORM 1 00130 #define IPV6_PKTINFO 2 00131 #define IPV6_HOPOPTS 3 00132 #define IPV6_DSTOPTS 4 00133 #define IPV6_RTHDR 5 00134 #define IPV6_PKTOPTIONS 6 00135 #define IPV6_CHECKSUM 7 00136 #define IPV6_HOPLIMIT 8 00137 #define IPV6_NEXTHOP 9 00138 #define IPV6_AUTHHDR 10 00139 */ 00140 #define IPV6_FLOWINFO 11 00141 00142 /* 00143 * Alternative names 00144 */ 00145 #define SCM_SRCRT IPV6_RXSRCRT 00146 00147 #define IPV6_UNICAST_HOPS 16 00148 #define IPV6_MULTICAST_IF 17 00149 #define IPV6_MULTICAST_HOPS 18 00150 #define IPV6_MULTICAST_LOOP 19 00151 //#define IPV6_ADD_MEMBERSHIP 20 00152 //#define IPV6_DROP_MEMBERSHIP 21 00153 #define IPV6_ROUTER_ALERT 22 00154 #define IPV6_MTU_DISCOVER 23 00155 #define IPV6_MTU 24 00156 #define IPV6_RECVERR 25 00157 00158 /* IPV6_MTU_DISCOVER values */ 00159 #define IPV6_PMTUDISC_DONT 0 00160 #define IPV6_PMTUDISC_WANT 1 00161 #define IPV6_PMTUDISC_DO 2 00162 00163 /* Flowlabel */ 00164 #define IPV6_FLOWLABEL_MGR 32 00165 #define IPV6_FLOWINFO_SEND 33 00166 00167 00168 #else 00169 00170 00171 #ifndef IPV6_FLOWINFO_FLOWLABEL 00172 #define IPV6_FLOWINFO_FLOWLABEL 0x000fffff 00173 #endif 00174 #ifndef IPV6_FLOWINFO_PRIORITY 00175 #define IPV6_FLOWINFO_PRIORITY 0x0ff00000 00176 #endif 00177 00178 00179 #endif 00180 00181 00182 #endif