Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
if_hippi.h
Go to the documentation of this file.
1
/*
2
* INET An implementation of the TCP/IP protocol suite for the LINUX
3
* operating system. INET is implemented using the BSD Socket
4
* interface as the means of communication with the user level.
5
*
6
* Global definitions for the HIPPI interface.
7
*
8
* Version: @(#)if_hippi.h 1.0.0 05/26/97
9
*
10
* Author: Fred N. van Kempen, <
[email protected]
>
11
* Donald Becker, <
[email protected]
>
12
* Alan Cox, <
[email protected]
>
13
* Steve Whitehouse, <
[email protected]
>
14
* Jes Sorensen, <
[email protected]
>
15
*
16
* This program is free software; you can redistribute it and/or
17
* modify it under the terms of the GNU General Public License
18
* as published by the Free Software Foundation; either version
19
* 2 of the License, or (at your option) any later version.
20
*/
21
22
#ifndef _LINUX_IF_HIPPI_H
23
#define _LINUX_IF_HIPPI_H
24
25
#include <linux/types.h>
26
#include <asm/byteorder.h>
27
28
/*
29
* HIPPI magic constants.
30
*/
31
32
#define HIPPI_ALEN 6
/* Bytes in one HIPPI hw-addr */
33
#define HIPPI_HLEN sizeof(struct hippi_hdr)
34
#define HIPPI_ZLEN 0
/* Min. bytes in frame without FCS */
35
#define HIPPI_DATA_LEN 65280
/* Max. bytes in payload */
36
#define HIPPI_FRAME_LEN (HIPPI_DATA_LEN + HIPPI_HLEN)
37
/* Max. bytes in frame without FCS */
38
39
/*
40
* Define LLC and SNAP constants.
41
*/
42
#define HIPPI_EXTENDED_SAP 0xAA
43
#define HIPPI_UI_CMD 0x03
44
45
46
/*
47
* Do we need to list some sort of ID's here?
48
*/
49
50
/*
51
* HIPPI statistics collection data.
52
*/
53
54
struct
hipnet_statistics
{
55
int
rx_packets
;
/* total packets received */
56
int
tx_packets
;
/* total packets transmitted */
57
int
rx_errors
;
/* bad packets received */
58
int
tx_errors
;
/* packet transmit problems */
59
int
rx_dropped
;
/* no space in linux buffers */
60
int
tx_dropped
;
/* no space available in linux */
61
62
/* detailed rx_errors: */
63
int
rx_length_errors
;
64
int
rx_over_errors
;
/* receiver ring buff overflow */
65
int
rx_crc_errors
;
/* recved pkt with crc error */
66
int
rx_frame_errors
;
/* recv'd frame alignment error */
67
int
rx_fifo_errors
;
/* recv'r fifo overrun */
68
int
rx_missed_errors
;
/* receiver missed packet */
69
70
/* detailed tx_errors */
71
int
tx_aborted_errors
;
72
int
tx_carrier_errors
;
73
int
tx_fifo_errors
;
74
int
tx_heartbeat_errors
;
75
int
tx_window_errors
;
76
};
77
78
79
struct
hippi_fp_hdr
{
80
#if 0
81
__u8
ulp;
/* must contain 4 */
82
#if defined (__BIG_ENDIAN_BITFIELD)
83
__u8
d1_data_present:1;
/* must be 1 */
84
__u8
start_d2_burst_boundary:1;
/* must be zero */
85
__u8
reserved
:6;
/* must be zero */
86
#if 0
87
__u16
reserved1
:5;
88
__u16
d1_area_size:8;
/* must be 3 */
89
__u16
d2_offset:3;
/* must be zero */
90
#endif
91
#elif defined(__LITTLE_ENDIAN_BITFIELD)
92
__u8
reserved
:6;
/* must be zero */
93
__u8
start_d2_burst_boundary:1;
/* must be zero */
94
__u8
d1_data_present:1;
/* must be 1 */
95
#if 0
96
__u16
d2_offset:3;
/* must be zero */
97
__u16
d1_area_size:8;
/* must be 3 */
98
__u16
reserved1
:5;
/* must be zero */
99
#endif
100
#else
101
#error "Please fix <asm/byteorder.h>"
102
#endif
103
#else
104
__be32
fixed
;
105
#endif
106
__be32
d2_size
;
107
}
__attribute__
((packed));
108
109
struct
hippi_le_hdr
{
110
#if defined (__BIG_ENDIAN_BITFIELD)
111
__u8
fc
:3;
112
__u8
double_wide:1;
113
__u8
message_type:4;
114
#elif defined(__LITTLE_ENDIAN_BITFIELD)
115
__u8
message_type:4;
116
__u8
double_wide:1;
117
__u8
fc
:3;
118
#endif
119
__u8
dest_switch_addr
[3];
120
#if defined (__BIG_ENDIAN_BITFIELD)
121
__u8
dest_addr_type:4,
122
src_addr_type:4;
123
#elif defined(__LITTLE_ENDIAN_BITFIELD)
124
__u8
src_addr_type:4,
125
dest_addr_type:4;
126
#endif
127
__u8
src_switch_addr
[3];
128
__u16
reserved
;
129
__u8
daddr
[
HIPPI_ALEN
];
130
__u16
locally_administered
;
131
__u8
saddr
[
HIPPI_ALEN
];
132
}
__attribute__
((packed));
133
134
#define HIPPI_OUI_LEN 3
135
/*
136
* Looks like the dsap and ssap fields have been swapped by mistake in
137
* RFC 2067 "IP over HIPPI".
138
*/
139
struct
hippi_snap_hdr
{
140
__u8
dsap
;
/* always 0xAA */
141
__u8
ssap
;
/* always 0xAA */
142
__u8
ctrl
;
/* always 0x03 */
143
__u8
oui
[
HIPPI_OUI_LEN
];
/* organizational universal id (zero)*/
144
__be16
ethertype
;
/* packet type ID field */
145
}
__attribute__
((packed));
146
147
struct
hippi_hdr
{
148
struct
hippi_fp_hdr
fp
;
149
struct
hippi_le_hdr
le
;
150
struct
hippi_snap_hdr
snap
;
151
}
__attribute__
((packed));
152
153
#endif
/* _LINUX_IF_HIPPI_H */
Generated on Thu Jan 10 2013 14:53:49 for Linux Kernel by
1.8.2