ROHC compression/decompression library
|
00001 /* 00002 * Copyright 2013 Didier Barvaux 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00017 */ 00018 00019 /** 00020 * @file rohc_internal.h 00021 * @brief ROHC private common definitions and routines 00022 * @author Didier Barvaux <didier.barvaux@toulouse.viveris.com> 00023 * @author Didier Barvaux <didier@barvaux.org> 00024 */ 00025 00026 #ifndef ROHC_INTERNAL_H 00027 #define ROHC_INTERNAL_H 00028 00029 /** 00030 * \mainpage 00031 * 00032 * <h2>Introduction</h2> 00033 * <p>The <a href="http://rohc-lib.org/" title="Official website">ROHC library</a> 00034 * provides an easy and robust way for applications to reduce their bandwidth 00035 * usage on network links with limited capacity. Headers of network packets are 00036 * compressed with the ROHC protocol and algorithms.</p> 00037 * <p><a href="http://rohc-lib.org/wiki/doku.php?id=rohc-protocol" 00038 * title="An introduction to the ROHC protocol">RObust Header Compression 00039 * (ROHC)</a> is a set of standards defined by the <a href="http://www.ietf.org/" 00040 * title="The IETF website">IETF</a>. The ROHC library is a free, opensource and 00041 * efficient implementation of them. The list of features implemented is available 00042 * on a separate page: \ref features</p> 00043 * <ul> 00044 * <li>Official website: <a href="http://rohc-lib.org/"> 00045 * http://rohc-lib.org/</a></li> 00046 * <li>Project page on Launchpad: <a href="https://launchpad.net/rohc"> 00047 * https://launchpad.net/rohc</a></li> 00048 * <li>Mailing list: <a href="mailto:rohc@lists.launchpad.net"> 00049 * rohc@lists.launchpad.net</a></li> 00050 * <li>Mailing list archives: <a href="http://lists.launchpad.net/rohc/"> 00051 * http://lists.launchpad.net/rohc/</a></li> 00052 * <li>Bugtracker: <a href="http://bugs.launchpad.net/rohc"> 00053 * http://bugs.launchpad.net/rohc</a></li> 00054 * </ul> 00055 * 00056 * <h2>License</h2> 00057 * <p>The project is licensed under LGPL2.1+. 00058 * See the <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/COPYING">COPYING</a> 00059 * and <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/AUTHORS">AUTHORS</a> 00060 * files for more details.</p> 00061 * 00062 * <h2>Libraries</h2> 00063 * <p> 00064 * The sources are in the src subdirectory. The sources are separated into 00065 * three libraries: 00066 * <ul> 00067 * <li>a library that contains the routines used for both the compression 00068 * and the decompression processes</li> 00069 * <li>a library that handles the compression process</li> 00070 * <li>a library that handles the decompression process</li> 00071 * </ul> 00072 * </p> 00073 * <p>See the <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/INSTALL"> INSTALL file</a> 00074 * to learn to build the libraries.</p> 00075 * 00076 * <h2>API documentation</h2> 00077 * <p>The APIs for ROHC common, compression and decompression are available on 00078 * separate pages: 00079 * <ul> 00080 * <li>\ref rohc</li> 00081 * <li>\ref rohc_comp</li> 00082 * <li>\ref rohc_decomp</li> 00083 * </ul> 00084 * </p> 00085 * 00086 * <h2>Tests</h2> 00087 * <p> 00088 * Several tests may be run to check the library behaviour. See the 00089 * <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/INSTALL">INSTALL file</a> to learn how to use these tools. 00090 * </p> 00091 * 00092 * <h2>References</h2> 00093 * <dl style="padding-bottom: 1em;"> 00094 * <dt><a href="http://tools.ietf.org/html/rfc3095">RFC 3095</a></dt> 00095 * <dd>ROHC: Framework and four profiles: RTP, UDP, ESP, and uncompressed.</dd> 00096 * <dt><a href="http://tools.ietf.org/html/rfc3096">RFC 3096</a></dt> 00097 * <dd>Requirements for robust IP/UDP/RTP header compression.</dd> 00098 * <dt><a href="http://tools.ietf.org/html/rfc3843">RFC 3843</a></dt> 00099 * <dd>ROHC: A Compression Profile for IP.</dd> 00100 * <dt><a href="http://tools.ietf.org/html/rfc4019">RFC 4019</a></dt> 00101 * <dd>ROHC: Profiles for User Datagram Protocol (UDP) Lite.</dd> 00102 * <dt><a href="http://rohc-lib.org/">ROHC library</a></dt> 00103 * <dd>The Open Source ROHC library described by the documentation you are 00104 * currently reading.</dd> 00105 * <dt><a href="http://rohc.sourceforge.net/">ROHC Linux</a></dt> 00106 * <dd>A GPL-licensed implementation of ROHC over PPP for the 2.4 Linux kernel. 00107 * The ROHC library started as a fork of this project.</dd> 00108 * </dl> 00109 */ 00110 00111 00112 /** 00113 * \page features Library features 00114 * 00115 * <p>See the <a href="http://rohc-lib.org/wiki/doku.php?id=library-compliance-rfcs">dedicated Wiki page for more details</a>.</p> 00116 */ 00117 00118 #include "rohc.h" 00119 00120 00121 /** 00122 * @brief ROHC medium (CID characteristics) 00123 */ 00124 struct rohc_medium 00125 { 00126 /** The CID type: large or small */ 00127 rohc_cid_type_t cid_type; 00128 00129 /// The maximum CID value 00130 rohc_cid_t max_cid; 00131 }; 00132 00133 00134 #endif 00135