xref: /linux/include/net/llc_if.h (revision 6443f4f20bdae726fe01cf5946fba9742a0ffda6)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef LLC_IF_H
3 #define LLC_IF_H
4 /*
5  * Copyright (c) 1997 by Procom Technology,Inc.
6  * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
7  */
8 /* Defines LLC interface to network layer */
9 /* Available primitives */
10 #include <linux/if.h>
11 #include <linux/if_arp.h>
12 #include <linux/llc.h>
13 #include <linux/etherdevice.h>
14 #include <net/llc.h>
15 
16 #define LLC_DATAUNIT_PRIM	1
17 #define LLC_CONN_PRIM		2
18 #define LLC_DATA_PRIM		3
19 #define LLC_DISC_PRIM		4
20 #define LLC_RESET_PRIM		5
21 #define LLC_FLOWCONTROL_PRIM	6 /* Not supported at this time */
22 #define LLC_DISABLE_PRIM	7
23 #define LLC_XID_PRIM		8
24 #define LLC_TEST_PRIM		9
25 #define LLC_SAP_ACTIVATION     10
26 #define LLC_SAP_DEACTIVATION   11
27 
28 #define LLC_NBR_PRIMITIVES     11
29 
30 #define LLC_IND			1
31 #define LLC_CONFIRM		2
32 
33 /* Primitive type */
34 #define LLC_PRIM_TYPE_REQ	1
35 #define LLC_PRIM_TYPE_IND	2
36 #define LLC_PRIM_TYPE_RESP	3
37 #define LLC_PRIM_TYPE_CONFIRM	4
38 
39 /* Reset reasons, remote entity or local LLC */
40 #define LLC_RESET_REASON_REMOTE	1
41 #define LLC_RESET_REASON_LOCAL	2
42 
43 /* Disconnect reasons */
44 #define LLC_DISC_REASON_RX_DM_RSP_PDU	0
45 #define LLC_DISC_REASON_RX_DISC_CMD_PDU	1
46 #define LLC_DISC_REASON_ACK_TMR_EXP	2
47 
48 /* Confirm reasons */
49 #define LLC_STATUS_CONN		0 /* connect confirm & reset confirm */
50 #define LLC_STATUS_DISC		1 /* connect confirm & reset confirm */
51 #define LLC_STATUS_FAILED	2 /* connect confirm & reset confirm */
52 #define LLC_STATUS_IMPOSSIBLE	3 /* connect confirm */
53 #define LLC_STATUS_RECEIVED	4 /* data conn */
54 #define LLC_STATUS_REMOTE_BUSY	5 /* data conn */
55 #define LLC_STATUS_REFUSE	6 /* data conn */
56 #define LLC_STATUS_CONFLICT	7 /* disconnect conn */
57 #define LLC_STATUS_RESET_DONE	8 /*  */
58 
59 int llc_establish_connection(struct sock *sk, const u8 *lmac, u8 *dmac,
60 			     u8 dsap);
61 int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb);
62 int llc_send_disc(struct sock *sk);
63 #endif /* LLC_IF_H */
64