ROHC compression/decompression library
rohc_internal.h
Go to the documentation of this file.
1 /*
2  * Copyright 2013 Didier Barvaux
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 /**
20  * @file rohc_internal.h
21  * @brief ROHC private common definitions and routines
22  * @author Didier Barvaux <didier.barvaux@toulouse.viveris.com>
23  * @author Didier Barvaux <didier@barvaux.org>
24  */
25 
26 #ifndef ROHC_INTERNAL_H
27 #define ROHC_INTERNAL_H
28 
29 /**
30  * \mainpage
31  *
32  * <h2>Introduction</h2>
33  * <p>The <a href="http://rohc-lib.org/" title="Official website">ROHC library</a>
34  * provides an easy and robust way for applications to reduce their bandwidth
35  * usage on network links with limited capacity. Headers of network packets are
36  * compressed with the ROHC protocol and algorithms.</p>
37  * <p><a href="http://rohc-lib.org/wiki/doku.php?id=rohc-protocol"
38  * title="An introduction to the ROHC protocol">RObust Header Compression
39  * (ROHC)</a> is a set of standards defined by the <a href="http://www.ietf.org/"
40  * title="The IETF website">IETF</a>. The ROHC library is a free, opensource and
41  * efficient implementation of them. The list of features implemented is available
42  * on a separate page: \ref features</p>
43  * <ul>
44  * <li>Official website: <a href="http://rohc-lib.org/">
45  * http://rohc-lib.org/</a></li>
46  * <li>Project page on Launchpad: <a href="https://launchpad.net/rohc">
47  * https://launchpad.net/rohc</a></li>
48  * <li>Mailing list: <a href="mailto:rohc@lists.launchpad.net">
49  * rohc@lists.launchpad.net</a></li>
50  * <li>Mailing list archives: <a href="http://lists.launchpad.net/rohc/">
51  * http://lists.launchpad.net/rohc/</a></li>
52  * <li>Bugtracker: <a href="http://bugs.launchpad.net/rohc">
53  * http://bugs.launchpad.net/rohc</a></li>
54  * </ul>
55  *
56  * <h2>License</h2>
57  * <p>The project is licensed under LGPL2.1+.
58  * See the <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/COPYING">COPYING</a>
59  * and <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/AUTHORS">AUTHORS</a>
60  * files for more details.</p>
61  *
62  * <h2>Libraries</h2>
63  * <p>
64  * The sources are in the src subdirectory. The sources are separated into
65  * three libraries:
66  * <ul>
67  * <li>a library that contains the routines used for both the compression
68  * and the decompression processes</li>
69  * <li>a library that handles the compression process</li>
70  * <li>a library that handles the decompression process</li>
71  * </ul>
72  * </p>
73  * <p>See the <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/INSTALL"> INSTALL file</a>
74  * to learn to build the libraries.</p>
75  *
76  * <h2>API documentation</h2>
77  * <p>The APIs for ROHC common, compression and decompression are available on
78  * separate pages:
79  * <ul>
80  * <li>\ref rohc</li>
81  * <li>\ref rohc_comp</li>
82  * <li>\ref rohc_decomp</li>
83  * </ul>
84  * </p>
85  *
86  * <h2>Tests</h2>
87  * <p>
88  * Several tests may be run to check the library behaviour. See the
89  * <a href="http://bazaar.launchpad.net/%7Edidier-barvaux/rohc/main/annotate/head%3A/INSTALL">INSTALL file</a> to learn how to use these tools.
90  * </p>
91  *
92  * <h2>References</h2>
93  * <dl style="padding-bottom: 1em;">
94  * <dt><a href="http://tools.ietf.org/html/rfc3095">RFC&nbsp;3095</a></dt>
95  * <dd>ROHC: Framework and four profiles: RTP, UDP, ESP, and uncompressed.</dd>
96  * <dt><a href="http://tools.ietf.org/html/rfc3096">RFC&nbsp;3096</a></dt>
97  * <dd>Requirements for robust IP/UDP/RTP header compression.</dd>
98  * <dt><a href="http://tools.ietf.org/html/rfc3843">RFC&nbsp;3843</a></dt>
99  * <dd>ROHC: A Compression Profile for IP.</dd>
100  * <dt><a href="http://tools.ietf.org/html/rfc4019">RFC&nbsp;4019</a></dt>
101  * <dd>ROHC: Profiles for User Datagram Protocol (UDP) Lite.</dd>
102  * <dt><a href="http://rohc-lib.org/">ROHC library</a></dt>
103  * <dd>The Open Source ROHC library described by the documentation you are
104  * currently reading.</dd>
105  * <dt><a href="http://rohc.sourceforge.net/">ROHC Linux</a></dt>
106  * <dd>A GPL-licensed implementation of ROHC over PPP for the 2.4 Linux kernel.
107  * The ROHC library started as a fork of this project.</dd>
108  * </dl>
109  */
110 
111 
112 /**
113  * \page features Library features
114  *
115  * <p>See the <a href="http://rohc-lib.org/wiki/doku.php?id=library-compliance-rfcs">dedicated Wiki page for more details</a>.</p>
116  */
117 
118 #include "rohc.h"
119 
120 
121 /**
122  * @brief ROHC medium (CID characteristics)
123  */
125 {
126  /** The CID type: large or small */
128 
129  /// The maximum CID value
131 };
132 
133 
134 #endif
135 
size_t rohc_cid_t
Definition: rohc.h:195
rohc_cid_type_t
The different types of Context IDs (CID)
Definition: rohc.h:176
ROHC common definitions and routines.
rohc_cid_t max_cid
The maximum CID value.
Definition: rohc_internal.h:130
rohc_cid_type_t cid_type
Definition: rohc_internal.h:127
ROHC medium (CID characteristics)
Definition: rohc_internal.h:124