RTP Audio System  2.0.0
tdin6.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines