source: rtems/cpukit/libnetworking/rtems/rtems_netinet_in.h @ 657e6c93

5
Last change on this file since 657e6c93 was 657e6c93, checked in by Christian Mauderer <Christian.Mauderer@…>, on 06/24/16 at 05:57:17

libnetworking: Import current <netinet/in.h>

Import the <netinet/in.h> from current FreeBSD. This allows to build
some current software (e.g. libressl).

Add legacy support like

  • prototype for in_cksum(),
  • IPPORT_USERRESERVED,
  • deprecated IPCTL_RT* defines,
  • ip_fw_chk_t and ip_fw_ctl_t,
  • ip_nat_... (IP NAT hooks), and
  • IP_NAT option for get/setsockopt()

to new <rtems/rtems_netinet_in.h>.

  • Property mode set to 100644
File size: 2.9 KB
Line 
1/*-
2 * Copyright (c) 1982, 1986, 1990, 1993
3 *      The Regents of the University of California.  All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 * 4. Neither the name of the University nor the names of its contributors
14 *    may be used to endorse or promote products derived from this software
15 *    without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#ifndef _RTEMS_RTEMS_NETINET_IN_H
31#define _RTEMS_RTEMS_NETINET_IN_H
32
33#include <rtems.h>
34#include <netinet/in.h>
35
36#ifdef __cplusplus
37extern "C" {
38#endif /* __cplusplus */
39
40/*
41 * Ports > IPPORT_USERRESERVED are reserved
42 * for servers, not necessarily privileged.  (IP_PORTRANGE_DEFAULT)
43 */
44#define IPPORT_USERRESERVED     5000
45
46/* Deprecated in current FreeBSD */
47#define IPCTL_RTEXPIRE          5       /* cloned route expiration time */
48#define IPCTL_RTMINEXPIRE       6       /* min value for expiration time */
49#define IPCTL_RTMAXCACHE        7       /* trigger level for dynamic expire */
50
51int      in_cksum(struct mbuf *, int);
52
53/* Firewall hooks */
54struct ip;
55typedef int ip_fw_chk_t(struct ip**, int, struct ifnet*, int, struct mbuf**);
56typedef int ip_fw_ctl_t(int, struct mbuf**);
57extern  ip_fw_chk_t *ip_fw_chk_ptr;
58extern  ip_fw_ctl_t *ip_fw_ctl_ptr;
59
60/* IP NAT hooks */
61typedef int ip_nat_t(struct ip**, struct mbuf**, struct ifnet*, int);
62typedef int ip_nat_ctl_t(int, struct mbuf**);
63extern  ip_nat_t *ip_nat_ptr;
64extern  ip_nat_ctl_t *ip_nat_ctl_ptr;
65#define IP_NAT_IN       0x00000001
66#define IP_NAT_OUT      0x00000002
67
68/*
69 * Options for use with [gs]etsockopt at the IP level.
70 *
71 * The value is stored in an integer. Use negative numbers to avoid conflicts
72 * with BSD.
73 */
74#define IP_NAT                  (-55)   /* set/get NAT opts */
75
76#ifdef __cplusplus
77}
78#endif /* __cplusplus */
79
80#endif /* _RTEMS_RTEMS_NETINET_IN_H */
Note: See TracBrowser for help on using the repository browser.