xref: /openbmc/linux/include/net/llc_if.h (revision 2ef6db76)
11da177e4SLinus Torvalds #ifndef LLC_IF_H
21da177e4SLinus Torvalds #define LLC_IF_H
31da177e4SLinus Torvalds /*
41da177e4SLinus Torvalds  * Copyright (c) 1997 by Procom Technology,Inc.
51da177e4SLinus Torvalds  * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
61da177e4SLinus Torvalds  *
71da177e4SLinus Torvalds  * This program can be redistributed or modified under the terms of the
81da177e4SLinus Torvalds  * GNU General Public License as published by the Free Software Foundation.
91da177e4SLinus Torvalds  * This program is distributed without any warranty or implied warranty
101da177e4SLinus Torvalds  * of merchantability or fitness for a particular purpose.
111da177e4SLinus Torvalds  *
121da177e4SLinus Torvalds  * See the GNU General Public License for more details.
131da177e4SLinus Torvalds  */
141da177e4SLinus Torvalds /* Defines LLC interface to network layer */
151da177e4SLinus Torvalds /* Available primitives */
161da177e4SLinus Torvalds #include <linux/if.h>
171da177e4SLinus Torvalds #include <linux/if_arp.h>
181da177e4SLinus Torvalds #include <linux/llc.h>
19aecbd4e4SStephen Hemminger #include <linux/etherdevice.h>
201da177e4SLinus Torvalds #include <net/llc.h>
211da177e4SLinus Torvalds 
221da177e4SLinus Torvalds #define LLC_DATAUNIT_PRIM	1
231da177e4SLinus Torvalds #define LLC_CONN_PRIM		2
241da177e4SLinus Torvalds #define LLC_DATA_PRIM		3
251da177e4SLinus Torvalds #define LLC_DISC_PRIM		4
261da177e4SLinus Torvalds #define LLC_RESET_PRIM		5
271da177e4SLinus Torvalds #define LLC_FLOWCONTROL_PRIM	6 /* Not supported at this time */
281da177e4SLinus Torvalds #define LLC_DISABLE_PRIM	7
291da177e4SLinus Torvalds #define LLC_XID_PRIM		8
301da177e4SLinus Torvalds #define LLC_TEST_PRIM		9
311da177e4SLinus Torvalds #define LLC_SAP_ACTIVATION     10
321da177e4SLinus Torvalds #define LLC_SAP_DEACTIVATION   11
331da177e4SLinus Torvalds 
341da177e4SLinus Torvalds #define LLC_NBR_PRIMITIVES     11
351da177e4SLinus Torvalds 
361da177e4SLinus Torvalds #define LLC_IND			1
371da177e4SLinus Torvalds #define LLC_CONFIRM		2
381da177e4SLinus Torvalds 
391da177e4SLinus Torvalds /* Primitive type */
401da177e4SLinus Torvalds #define LLC_PRIM_TYPE_REQ	1
411da177e4SLinus Torvalds #define LLC_PRIM_TYPE_IND	2
421da177e4SLinus Torvalds #define LLC_PRIM_TYPE_RESP	3
431da177e4SLinus Torvalds #define LLC_PRIM_TYPE_CONFIRM	4
441da177e4SLinus Torvalds 
451da177e4SLinus Torvalds /* Reset reasons, remote entity or local LLC */
461da177e4SLinus Torvalds #define LLC_RESET_REASON_REMOTE	1
471da177e4SLinus Torvalds #define LLC_RESET_REASON_LOCAL	2
481da177e4SLinus Torvalds 
491da177e4SLinus Torvalds /* Disconnect reasons */
501da177e4SLinus Torvalds #define LLC_DISC_REASON_RX_DM_RSP_PDU	0
511da177e4SLinus Torvalds #define LLC_DISC_REASON_RX_DISC_CMD_PDU	1
521da177e4SLinus Torvalds #define LLC_DISC_REASON_ACK_TMR_EXP	2
531da177e4SLinus Torvalds 
541da177e4SLinus Torvalds /* Confirm reasons */
551da177e4SLinus Torvalds #define LLC_STATUS_CONN		0 /* connect confirm & reset confirm */
561da177e4SLinus Torvalds #define LLC_STATUS_DISC		1 /* connect confirm & reset confirm */
571da177e4SLinus Torvalds #define LLC_STATUS_FAILED	2 /* connect confirm & reset confirm */
581da177e4SLinus Torvalds #define LLC_STATUS_IMPOSSIBLE	3 /* connect confirm */
591da177e4SLinus Torvalds #define LLC_STATUS_RECEIVED	4 /* data conn */
601da177e4SLinus Torvalds #define LLC_STATUS_REMOTE_BUSY	5 /* data conn */
611da177e4SLinus Torvalds #define LLC_STATUS_REFUSE	6 /* data conn */
621da177e4SLinus Torvalds #define LLC_STATUS_CONFLICT	7 /* disconnect conn */
631da177e4SLinus Torvalds #define LLC_STATUS_RESET_DONE	8 /*  */
641da177e4SLinus Torvalds 
65*2ef6db76SJakub Kicinski int llc_establish_connection(struct sock *sk, const u8 *lmac, u8 *dmac,
66*2ef6db76SJakub Kicinski 			     u8 dsap);
67bf3c710fSJoe Perches int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb);
68bf3c710fSJoe Perches int llc_send_disc(struct sock *sk);
691da177e4SLinus Torvalds #endif /* LLC_IF_H */
70