RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
libnetworking
net
if_arp.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 1986, 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
* @(#)if_arp.h 8.1 (Berkeley) 6/10/93
30
* $FreeBSD: src/sys/net/if_arp.h,v 1.21 2005/01/07 01:45:34 imp Exp $
31
*/
32
33
34
#ifndef _NET_IF_ARP_H_
35
#define _NET_IF_ARP_H_
36
37
#include <
sys/socket.h
>
/* struct sockaddr */
38
39
/*
40
* Address Resolution Protocol.
41
*
42
* See RFC 826 for protocol description. ARP packets are variable
43
* in size; the arphdr structure defines the fixed-length portion.
44
* Protocol type values are the same as those for 10 Mb/s Ethernet.
45
* It is followed by the variable-sized fields ar_sha, arp_spa,
46
* arp_tha and arp_tpa in that order, according to the lengths
47
* specified. Field names used correspond to RFC 826.
48
*/
49
struct
arphdr
{
50
u_short ar_hrd;
/* format of hardware address */
51
#define ARPHRD_ETHER 1
/* ethernet hardware format */
52
#define ARPHRD_IEEE802 6
/* token-ring hardware format */
53
#define ARPHRD_ARCNET 7
/* arcnet hardware format */
54
#define ARPHRD_FRELAY 15
/* frame relay hardware format */
55
#define ARPHRD_IEEE1394 24
/* firewire hardware format */
56
u_short ar_pro;
/* format of protocol address */
57
u_char ar_hln;
/* length of hardware address */
58
u_char ar_pln;
/* length of protocol address */
59
u_short ar_op;
/* one of: */
60
#define ARPOP_REQUEST 1
/* request to resolve address */
61
#define ARPOP_REPLY 2
/* response to previous request */
62
#define ARPOP_REVREQUEST 3
/* request protocol address given hardware */
63
#define ARPOP_REVREPLY 4
/* response giving protocol address */
64
#define ARPOP_INVREQUEST 8
/* request to identify peer */
65
#define ARPOP_INVREPLY 9
/* response identifying peer */
66
/*
67
* The remaining fields are variable in size,
68
* according to the sizes above.
69
*/
70
#ifdef COMMENT_ONLY
71
u_char ar_sha[];
/* sender hardware address */
72
u_char ar_spa[];
/* sender protocol address */
73
u_char ar_tha[];
/* target hardware address */
74
u_char ar_tpa[];
/* target protocol address */
75
#endif
76
};
77
78
#define ar_sha(ap) (((caddr_t)((ap)+1)) + 0)
79
#define ar_spa(ap) (((caddr_t)((ap)+1)) + (ap)->ar_hln)
80
#define ar_tha(ap) (((caddr_t)((ap)+1)) + (ap)->ar_hln + (ap)->ar_pln)
81
#define ar_tpa(ap) (((caddr_t)((ap)+1)) + 2*(ap)->ar_hln + (ap)->ar_pln)
82
83
#define arphdr_len2(ar_hln, ar_pln) \
84
(sizeof(struct arphdr) + 2*(ar_hln) + 2*(ar_pln))
85
#define arphdr_len(ap) (arphdr_len2((ap)->ar_hln, (ap)->ar_pln))
86
87
/*
88
* ARP ioctl request
89
*/
90
struct
arpreq
{
91
struct
sockaddr
arp_pa;
/* protocol address */
92
struct
sockaddr
arp_ha;
/* hardware address */
93
int
arp_flags;
/* flags */
94
};
95
/* arp_flags and at_flags field values */
96
#define ATF_INUSE 0x01
/* entry in use */
97
#define ATF_COM 0x02
/* completed entry (enaddr valid) */
98
#define ATF_PERM 0x04
/* permanent entry */
99
#define ATF_PUBL 0x08
/* publish entry (respond for other host) */
100
#define ATF_USETRAILERS 0x10
/* has requested trailers */
101
102
#ifdef _KERNEL
103
/*
104
* Structure shared between the ethernet driver modules and
105
* the address resolution code. For example, each ec_softc or il_softc
106
* begins with this structure.
107
* The code is written so that each *_softc _must_ begin with a
108
* struct arpcom, which in turn _must_ begin with a struct ifnet.
109
*/
110
struct
arpcom {
111
/*
112
* The ifnet struct _must_ be at the head of this structure.
113
*/
114
struct
ifnet
ac_if;
/* network-visible interface */
115
u_char ac_enaddr[6];
/* ethernet hardware address */
116
#if defined(__rtems__)
117
/* Cruft from ancient BSD - should be removed once RTEMS is updated */
118
struct
ether_multi *ac_multiaddrs;
/* list of ether multicast addrs */
119
int
ac_multicnt;
/* length of ac_multiaddrs list */
120
#else
121
int
now_unused;
/* XXX was length of ac_multiaddrs list */
122
void
*ac_netgraph;
/* ng_ether(4) netgraph node info */
123
#endif
124
};
125
#define IFP2AC(ifp) ((struct arpcom *)(ifp))
126
127
#endif
128
129
#endif
/* !_NET_IF_ARP_H_ */
arphdr
Definition:
if_arp.h:50
sockaddr
Definition:
socket.h:180
ifnet
Definition:
if_var.h:99
socket.h
arpreq
Definition:
if_arp.h:91
Generated by
1.8.13