1 /* $OpenBSD: if_fddi.h,v 1.6 2003/06/02 23:28:12 millert Exp $ */
2 /* $NetBSD: if_fddi.h,v 1.2 1995/08/19 04:35:28 cgd Exp $ */
3
4 /*
5 * Copyright (c) 1982, 1986, 1993
6 * The Regents of the University of California. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. Neither the name of the University nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 * @(#)if_fddi.h 8.1 (Berkeley) 6/10/93
33 */
34
35 #ifndef _NETINET_IF_FDDI_H_
36 #define _NETINET_IF_FDDI_H_
37
38 /*
39 * Structure of an 100Mb/s FDDI header.
40 */
41 struct fddi_header {
42 u_char fddi_fc;
43 u_char fddi_dhost[6];
44 u_char fddi_shost[6];
45 };
46
47 #define FDDIMTU 4470
48 #define FDDIIPMTU 4352
49 #define FDDIMIN 3
50
51 #define FDDIFC_C 0x80 /* 0b10000000 */
52 #define FDDIFC_L 0x40 /* 0b01000000 */
53 #define FDDIFC_F 0x30 /* 0b00110000 */
54 #define FDDIFC_Z 0x0F /* 0b00001111 */
55
56 #define FDDIFC_LLC_ASYNC 0x50
57 #define FDDIFC_LLC_PRIO0 0
58 #define FDDIFC_LLC_PRIO1 1
59 #define FDDIFC_LLC_PRIO2 2
60 #define FDDIFC_LLC_PRIO3 3
61 #define FDDIFC_LLC_PRIO4 4
62 #define FDDIFC_LLC_PRIO5 5
63 #define FDDIFC_LLC_PRIO6 6
64 #define FDDIFC_LLC_PRIO7 7
65 #define FDDIFC_LLC_SYNC 0xd0
66 #define FDDIFC_SMT 0x40
67
68 #if defined(_KERNEL)
69 #define fddibroadcastaddr etherbroadcastaddr
70 #define fddi_ipmulticast_min ether_ipmulticast_min
71 #define fddi_ipmulticast_max ether_ipmulticast_max
72 #define fddi_addmulti ether_addmulti
73 #define fddi_delmulti ether_delmulti
74 #define fddi_sprintf ether_sprintf
75
76 void fddi_ifattach(struct ifnet *);
77 void fddi_input(struct ifnet *, struct fddi_header *, struct mbuf *);
78 int fddi_output(struct ifnet *,
79 struct mbuf *, struct sockaddr *, struct rtentry *);
80 #endif /* _KERNEL */
81 #endif /* _NET_IF_FDDI_H_ */