1/*********************************************************************
2 *
3 * Filename:      irlmp_frame.h
4 * Version:       0.9
5 * Description:
6 * Status:        Experimental.
7 * Author:        Dag Brattli <dagb@cs.uit.no>
8 * Created at:    Tue Aug 19 02:09:59 1997
9 * Modified at:   Fri Dec 10 13:21:53 1999
10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
11 *
12 *     Copyright (c) 1997, 1999 Dag Brattli <dagb@cs.uit.no>,
13 *     All Rights Reserved.
14 *
15 *     This program is free software; you can redistribute it and/or
16 *     modify it under the terms of the GNU General Public License as
17 *     published by the Free Software Foundation; either version 2 of
18 *     the License, or (at your option) any later version.
19 *
20 *     Neither Dag Brattli nor University of Troms� admit liability nor
21 *     provide warranty for any of this software. This material is
22 *     provided "AS-IS" and at no charge.
23 *
24 ********************************************************************/
25
26#ifndef IRMLP_FRAME_H
27#define IRMLP_FRAME_H
28
29#include <linux/config.h>
30#include <linux/skbuff.h>
31
32#include <net/irda/discovery.h>
33
34/* IrLMP frame opcodes */
35#define CONNECT_CMD    0x01
36#define CONNECT_CNF    0x81
37#define DISCONNECT     0x02
38#define ACCESSMODE_CMD 0x03
39#define ACCESSMODE_CNF 0x83
40
41#define CONTROL_BIT    0x80
42
43inline void irlmp_send_data_pdu(struct lap_cb *self, __u8 dlsap, __u8 slsap,
44				int expedited, struct sk_buff *skb);
45void irlmp_send_lcf_pdu(struct lap_cb *self, __u8 dlsap, __u8 slsap,
46			__u8 opcode, struct sk_buff *skb);
47void irlmp_link_data_indication(struct lap_cb *, struct sk_buff *,
48				int unreliable);
49#ifdef CONFIG_IRDA_ULTRA
50void irlmp_link_unitdata_indication(struct lap_cb *, struct sk_buff *);
51#endif /* CONFIG_IRDA_ULTRA */
52
53void irlmp_link_connect_indication(struct lap_cb *, __u32 saddr, __u32 daddr,
54				   struct qos_info *qos, struct sk_buff *skb);
55void irlmp_link_connect_request(__u32 daddr);
56void irlmp_link_connect_confirm(struct lap_cb *self, struct qos_info *qos,
57				struct sk_buff *skb);
58void irlmp_link_disconnect_indication(struct lap_cb *, struct irlap_cb *,
59				      LAP_REASON reason, struct sk_buff *);
60void irlmp_link_discovery_confirm(struct lap_cb *self, hashbin_t *log);
61void irlmp_link_discovery_indication(struct lap_cb *, discovery_t *discovery);
62
63#endif
64