diff options
Diffstat (limited to 'include/net/llc_if.h')
-rw-r--r-- | include/net/llc_if.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/include/net/llc_if.h b/include/net/llc_if.h new file mode 100644 index 000000000000..090eaa0d71f9 --- /dev/null +++ b/include/net/llc_if.h | |||
@@ -0,0 +1,101 @@ | |||
1 | #ifndef LLC_IF_H | ||
2 | #define LLC_IF_H | ||
3 | /* | ||
4 | * Copyright (c) 1997 by Procom Technology,Inc. | ||
5 | * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br> | ||
6 | * | ||
7 | * This program can be redistributed or modified under the terms of the | ||
8 | * GNU General Public License as published by the Free Software Foundation. | ||
9 | * This program is distributed without any warranty or implied warranty | ||
10 | * of merchantability or fitness for a particular purpose. | ||
11 | * | ||
12 | * See the GNU General Public License for more details. | ||
13 | */ | ||
14 | /* Defines LLC interface to network layer */ | ||
15 | /* Available primitives */ | ||
16 | #include <linux/if.h> | ||
17 | #include <linux/if_arp.h> | ||
18 | #include <linux/llc.h> | ||
19 | #include <net/llc.h> | ||
20 | |||
21 | #define LLC_DATAUNIT_PRIM 1 | ||
22 | #define LLC_CONN_PRIM 2 | ||
23 | #define LLC_DATA_PRIM 3 | ||
24 | #define LLC_DISC_PRIM 4 | ||
25 | #define LLC_RESET_PRIM 5 | ||
26 | #define LLC_FLOWCONTROL_PRIM 6 /* Not supported at this time */ | ||
27 | #define LLC_DISABLE_PRIM 7 | ||
28 | #define LLC_XID_PRIM 8 | ||
29 | #define LLC_TEST_PRIM 9 | ||
30 | #define LLC_SAP_ACTIVATION 10 | ||
31 | #define LLC_SAP_DEACTIVATION 11 | ||
32 | |||
33 | #define LLC_NBR_PRIMITIVES 11 | ||
34 | |||
35 | #define LLC_IND 1 | ||
36 | #define LLC_CONFIRM 2 | ||
37 | |||
38 | /* Primitive type */ | ||
39 | #define LLC_PRIM_TYPE_REQ 1 | ||
40 | #define LLC_PRIM_TYPE_IND 2 | ||
41 | #define LLC_PRIM_TYPE_RESP 3 | ||
42 | #define LLC_PRIM_TYPE_CONFIRM 4 | ||
43 | |||
44 | /* Reset reasons, remote entity or local LLC */ | ||
45 | #define LLC_RESET_REASON_REMOTE 1 | ||
46 | #define LLC_RESET_REASON_LOCAL 2 | ||
47 | |||
48 | /* Disconnect reasons */ | ||
49 | #define LLC_DISC_REASON_RX_DM_RSP_PDU 0 | ||
50 | #define LLC_DISC_REASON_RX_DISC_CMD_PDU 1 | ||
51 | #define LLC_DISC_REASON_ACK_TMR_EXP 2 | ||
52 | |||
53 | /* Confirm reasons */ | ||
54 | #define LLC_STATUS_CONN 0 /* connect confirm & reset confirm */ | ||
55 | #define LLC_STATUS_DISC 1 /* connect confirm & reset confirm */ | ||
56 | #define LLC_STATUS_FAILED 2 /* connect confirm & reset confirm */ | ||
57 | #define LLC_STATUS_IMPOSSIBLE 3 /* connect confirm */ | ||
58 | #define LLC_STATUS_RECEIVED 4 /* data conn */ | ||
59 | #define LLC_STATUS_REMOTE_BUSY 5 /* data conn */ | ||
60 | #define LLC_STATUS_REFUSE 6 /* data conn */ | ||
61 | #define LLC_STATUS_CONFLICT 7 /* disconnect conn */ | ||
62 | #define LLC_STATUS_RESET_DONE 8 /* */ | ||
63 | |||
64 | extern u8 llc_mac_null_var[IFHWADDRLEN]; | ||
65 | |||
66 | /** | ||
67 | * llc_mac_null - determines if a address is a null mac address | ||
68 | * @mac: Mac address to test if null. | ||
69 | * | ||
70 | * Determines if a given address is a null mac address. Returns 0 if the | ||
71 | * address is not a null mac, 1 if the address is a null mac. | ||
72 | */ | ||
73 | static __inline__ int llc_mac_null(u8 *mac) | ||
74 | { | ||
75 | return !memcmp(mac, llc_mac_null_var, IFHWADDRLEN); | ||
76 | } | ||
77 | |||
78 | static __inline__ int llc_addrany(struct llc_addr *addr) | ||
79 | { | ||
80 | return llc_mac_null(addr->mac) && !addr->lsap; | ||
81 | } | ||
82 | |||
83 | /** | ||
84 | * llc_mac_match - determines if two mac addresses are the same | ||
85 | * @mac1: First mac address to compare. | ||
86 | * @mac2: Second mac address to compare. | ||
87 | * | ||
88 | * Determines if two given mac address are the same. Returns 0 if there | ||
89 | * is not a complete match up to len, 1 if a complete match up to len is | ||
90 | * found. | ||
91 | */ | ||
92 | static __inline__ int llc_mac_match(u8 *mac1, u8 *mac2) | ||
93 | { | ||
94 | return !memcmp(mac1, mac2, IFHWADDRLEN); | ||
95 | } | ||
96 | |||
97 | extern int llc_establish_connection(struct sock *sk, u8 *lmac, | ||
98 | u8 *dmac, u8 dsap); | ||
99 | extern int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb); | ||
100 | extern int llc_send_disc(struct sock *sk); | ||
101 | #endif /* LLC_IF_H */ | ||