ROHC compression/decompression library
rohc_internal.h
Go to the documentation of this file.
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&nbsp;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&nbsp;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&nbsp;3843</a></dt>
00099  *  <dd>ROHC: A Compression Profile for IP.</dd>
00100  *  <dt><a href="http://tools.ietf.org/html/rfc4019">RFC&nbsp;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