You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


ChangeSet@1.1414.4.12, 2003-11-09 02:34:08-02:00, acme@conectiva.com.br
  o LLC: move private headers to where they belong: net/llc


 b/include/net/llc.h     |    8 
 b/net/llc/af_llc.c      |    5 
 b/net/llc/llc_c_ac.c    |   17 -
 b/net/llc/llc_c_ac.h    |  221 ++++++++++++++++++++++++
 b/net/llc/llc_c_ev.c    |   12 -
 b/net/llc/llc_c_ev.h    |  266 +++++++++++++++++++++++++++++
 b/net/llc/llc_c_st.c    |   11 -
 b/net/llc/llc_c_st.h    |   48 +++++
 b/net/llc/llc_conn.c    |   14 -
 b/net/llc/llc_conn.h    |  117 ++++++++++++
 b/net/llc/llc_if.c      |   19 --
 b/net/llc/llc_if.h      |  101 +++++++++++
 b/net/llc/llc_input.c   |    3 
 b/net/llc/llc_output.c  |    2 
 b/net/llc/llc_pdu.c     |    4 
 b/net/llc/llc_pdu.h     |  437 ++++++++++++++++++++++++++++++++++++++++++++++++
 b/net/llc/llc_proc.c    |    9 
 b/net/llc/llc_s_ac.c    |   12 -
 b/net/llc/llc_s_ac.h    |   39 ++++
 b/net/llc/llc_s_ev.c    |    7 
 b/net/llc/llc_s_ev.h    |   67 +++++++
 b/net/llc/llc_s_st.c    |   10 -
 b/net/llc/llc_s_st.h    |   32 +++
 b/net/llc/llc_sap.c     |   15 -
 b/net/llc/llc_sap.h     |   22 ++
 b/net/llc/llc_station.c |   18 -
 include/net/llc_c_ac.h  |  221 ------------------------
 include/net/llc_c_ev.h  |  266 -----------------------------
 include/net/llc_c_st.h  |   48 -----
 include/net/llc_conn.h  |  117 ------------
 include/net/llc_if.h    |  101 -----------
 include/net/llc_pdu.h   |  437 ------------------------------------------------
 include/net/llc_s_ac.h  |   39 ----
 include/net/llc_s_ev.h  |   67 -------
 include/net/llc_s_st.h  |   32 ---
 include/net/llc_sap.h   |   31 ---
 36 files changed, 1428 insertions(+), 1447 deletions(-)


diff -Nru a/include/net/llc.h b/include/net/llc.h
--- a/include/net/llc.h	Sat Nov 15 17:04:10 2003
+++ b/include/net/llc.h	Sat Nov 15 17:04:10 2003
@@ -83,8 +83,16 @@
 
 extern struct llc_sap *llc_sap_find(unsigned char sap_value);
 
+extern void llc_build_and_send_test_pkt(struct llc_sap *sap,
+					struct sk_buff *skb,
+					unsigned char *dmac,
+					unsigned char dsap);
 extern int llc_build_and_send_ui_pkt(struct llc_sap *sap, struct sk_buff *skb,
 				     unsigned char *dmac, unsigned char dsap);
+extern void llc_build_and_send_xid_pkt(struct llc_sap *sap,
+				       struct sk_buff *skb,
+				       unsigned char *dmac,
+				       unsigned char dsap);
 
 extern int llc_station_init(void);
 extern void llc_station_exit(void);
diff -Nru a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h
--- a/include/net/llc_c_ac.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,221 +0,0 @@
-#ifndef LLC_C_AC_H
-#define LLC_C_AC_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* Connection component state transition actions */
-/*
- * Connection state transition actions
- * (Fb = F bit; Pb = P bit; Xb = X bit)
- */
-#define LLC_CONN_AC_CLR_REMOTE_BUSY			 1
-#define LLC_CONN_AC_CONN_IND				 2
-#define LLC_CONN_AC_CONN_CONFIRM			 3
-#define LLC_CONN_AC_DATA_IND				 4
-#define LLC_CONN_AC_DISC_IND				 5
-#define LLC_CONN_AC_RESET_IND				 6
-#define LLC_CONN_AC_RESET_CONFIRM			 7
-#define LLC_CONN_AC_REPORT_STATUS			 8
-#define LLC_CONN_AC_CLR_REMOTE_BUSY_IF_Fb_EQ_1		 9
-#define LLC_CONN_AC_STOP_REJ_TMR_IF_DATA_FLAG_EQ_2	10
-#define LLC_CONN_AC_SEND_DISC_CMD_Pb_SET_X		11
-#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_Pb		12
-#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_1		13
-#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_F_FLAG		14
-#define LLC_CONN_AC_SEND_FRMR_RSP_Fb_SET_X		15
-#define LLC_CONN_AC_RESEND_FRMR_RSP_Fb_SET_0		16
-#define LLC_CONN_AC_RESEND_FRMR_RSP_Fb_SET_Pb		17
-#define LLC_CONN_AC_SEND_I_CMD_Pb_SET_1			18
-#define LLC_CONN_AC_RESEND_I_CMD_Pb_SET_1		19
-#define LLC_CONN_AC_RESEND_I_CMD_Pb_SET_1_OR_SEND_RR	20
-#define LLC_CONN_AC_SEND_I_XXX_Xb_SET_0			21
-#define LLC_CONN_AC_RESEND_I_XXX_Xb_SET_0		22
-#define LLC_CONN_AC_RESEND_I_XXX_Xb_SET_0_OR_SEND_RR	23
-#define LLC_CONN_AC_RESEND_I_RSP_Fb_SET_1		24
-#define LLC_CONN_AC_SEND_REJ_CMD_Pb_SET_1		25
-#define LLC_CONN_AC_SEND_REJ_RSP_Fb_SET_1		26
-#define LLC_CONN_AC_SEND_REJ_XXX_Xb_SET_0		27
-#define LLC_CONN_AC_SEND_RNR_CMD_Pb_SET_1		28
-#define LLC_CONN_AC_SEND_RNR_RSP_Fb_SET_1		29
-#define LLC_CONN_AC_SEND_RNR_XXX_Xb_SET_0		30
-#define LLC_CONN_AC_SET_REMOTE_BUSY			31
-#define LLC_CONN_AC_OPTIONAL_SEND_RNR_XXX_Xb_SET_0	32
-#define LLC_CONN_AC_SEND_RR_CMD_Pb_SET_1		33
-#define LLC_CONN_AC_SEND_ACK_CMD_Pb_SET_1		34
-#define LLC_CONN_AC_SEND_RR_RSP_Fb_SET_1		35
-#define LLC_CONN_AC_SEND_ACK_RSP_Fb_SET_1		36
-#define LLC_CONN_AC_SEND_RR_XXX_Xb_SET_0		37
-#define LLC_CONN_AC_SEND_ACK_XXX_Xb_SET_0		38
-#define LLC_CONN_AC_SEND_SABME_CMD_Pb_SET_X		39
-#define LLC_CONN_AC_SEND_UA_RSP_Fb_SET_Pb		40
-#define LLC_CONN_AC_SEND_UA_RSP_Fb_SET_F_FLAG		41
-#define LLC_CONN_AC_S_FLAG_SET_0			42
-#define LLC_CONN_AC_S_FLAG_SET_1			43
-#define LLC_CONN_AC_START_P_TMR				44
-#define LLC_CONN_AC_START_ACK_TMR			45
-#define LLC_CONN_AC_START_REJ_TMR			46
-#define LLC_CONN_AC_START_ACK_TMR_IF_NOT_RUNNING	47
-#define LLC_CONN_AC_STOP_ACK_TMR			48
-#define LLC_CONN_AC_STOP_P_TMR				49
-#define LLC_CONN_AC_STOP_REJ_TMR			50
-#define LLC_CONN_AC_STOP_ALL_TMRS			51
-#define LLC_CONN_AC_STOP_OTHER_TMRS			52
-#define LLC_CONN_AC_UPDATE_Nr_RECEIVED			53
-#define LLC_CONN_AC_UPDATE_P_FLAG			54
-#define LLC_CONN_AC_DATA_FLAG_SET_2			55
-#define LLC_CONN_AC_DATA_FLAG_SET_0			56
-#define LLC_CONN_AC_DATA_FLAG_SET_1			57
-#define LLC_CONN_AC_DATA_FLAG_SET_1_IF_DATA_FLAG_EQ_0	58
-#define LLC_CONN_AC_P_FLAG_SET_0			59
-#define LLC_CONN_AC_P_FLAG_SET_P			60
-#define LLC_CONN_AC_REMOTE_BUSY_SET_0			61
-#define LLC_CONN_AC_RETRY_CNT_SET_0			62
-#define LLC_CONN_AC_RETRY_CNT_INC_BY_1			63
-#define LLC_CONN_AC_Vr_SET_0				64
-#define LLC_CONN_AC_Vr_INC_BY_1				65
-#define LLC_CONN_AC_Vs_SET_0				66
-#define LLC_CONN_AC_Vs_SET_Nr				67
-#define LLC_CONN_AC_F_FLAG_SET_P			68
-#define LLC_CONN_AC_STOP_SENDACK_TMR			70
-#define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING	71
-
-typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
-
-extern int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ac_conn_confirm(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_data_ind(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_disc_ind(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_ind(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_confirm(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_report_status(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_clear_remote_busy_if_f_eq_1(struct sock* sk,
-						   struct sk_buff *skb);
-extern int llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2(struct sock* sk,
-						      struct sk_buff *skb);
-extern int llc_conn_ac_send_disc_cmd_p_set_x(struct sock* sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ac_send_dm_rsp_f_set_p(struct sock* sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ac_send_dm_rsp_f_set_1(struct sock* sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ac_send_dm_rsp_f_set_f_flag(struct sock* sk,
-						struct sk_buff *skb);
-extern int llc_conn_ac_send_frmr_rsp_f_set_x(struct sock* sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ac_resend_frmr_rsp_f_set_0(struct sock* sk,
-					       struct sk_buff *skb);
-extern int llc_conn_ac_resend_frmr_rsp_f_set_p(struct sock* sk,
-					       struct sk_buff *skb);
-extern int llc_conn_ac_send_i_cmd_p_set_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_send_i_cmd_p_set_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_cmd_p_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr(struct sock* sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ac_send_i_xxx_x_set_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_xxx_x_set_0(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr(struct sock* sk,
-						       struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_rsp_f_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rej_cmd_p_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rej_rsp_f_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rej_xxx_x_set_0(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rnr_cmd_p_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rnr_rsp_f_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rnr_xxx_x_set_0(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_set_remote_busy(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_opt_send_rnr_xxx_x_set_0(struct sock* sk,
-						struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_cmd_p_set_1(struct sock* sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ac_send_ack_cmd_p_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_rsp_f_set_1(struct sock* sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ac_send_ack_rsp_f_set_1(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_xxx_x_set_0(struct sock* sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ac_send_ack_xxx_x_set_0(struct sock* sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ac_send_sabme_cmd_p_set_x(struct sock* sk,
-					      struct sk_buff *skb);
-extern int llc_conn_ac_send_ua_rsp_f_set_f_flag(struct sock* sk,
-						struct sk_buff *skb);
-extern int llc_conn_ac_send_ua_rsp_f_set_p(struct sock* sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ac_set_s_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_s_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_p_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_ack_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_rej_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_ack_tmr_if_not_running(struct sock* sk,
-						    struct sk_buff *skb);
-extern int llc_conn_ac_stop_ack_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_p_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_rej_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_all_timers(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_other_timers(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_upd_nr_received(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_tx_win_size(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_dec_tx_win_size(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_upd_p_flag(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_2(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_1_if_data_flag_eq_0(struct sock* sk,
-							 struct sk_buff *skb);
-extern int llc_conn_ac_set_p_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_p_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_remote_busy_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_retry_cnt_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_cause_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_cause_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_retry_cnt_by_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_vr_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_vr_by_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_vs_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_vs_nr(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_vs(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_upd_vs(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_f_flag_p(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_disc(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_reset(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_disc_confirm(struct sock* sk, struct sk_buff *skb);
-extern u8 llc_circular_between(u8 a, u8 b, u8 c);
-extern int llc_conn_ac_send_ack_if_needed(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_npta_value(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_adjust_npta_by_rr(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_adjust_npta_by_rnr(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_sendack_flag(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_rsp_f_set_ackpf(struct sock* sk,
-					       struct sk_buff *skb);
-extern int llc_conn_ac_send_i_rsp_f_set_ackpf(struct sock* sk,
-					      struct sk_buff *skb);
-extern int llc_conn_ac_send_i_rsp_as_ack(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_send_i_as_ack(struct sock* sk, struct sk_buff *skb);
-
-extern void llc_conn_busy_tmr_cb(unsigned long timeout_data);
-extern void llc_conn_pf_cycle_tmr_cb(unsigned long timeout_data);
-extern void llc_conn_ack_tmr_cb(unsigned long timeout_data);
-extern void llc_conn_rej_tmr_cb(unsigned long timeout_data);
-
-extern void llc_conn_set_p_flag(struct sock *sk, u8 value);
-#endif /* LLC_C_AC_H */
diff -Nru a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h
--- a/include/net/llc_c_ev.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,266 +0,0 @@
-#ifndef LLC_C_EV_H
-#define LLC_C_EV_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- *		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <net/sock.h>
-
-/* Connection component state transition event qualifiers */
-/* Types of events (possible values in 'ev->type') */
-#define LLC_CONN_EV_TYPE_SIMPLE		 1
-#define LLC_CONN_EV_TYPE_CONDITION	 2
-#define LLC_CONN_EV_TYPE_PRIM		 3
-#define LLC_CONN_EV_TYPE_PDU		 4	/* command/response PDU */
-#define LLC_CONN_EV_TYPE_ACK_TMR	 5
-#define LLC_CONN_EV_TYPE_P_TMR		 6
-#define LLC_CONN_EV_TYPE_REJ_TMR	 7
-#define LLC_CONN_EV_TYPE_BUSY_TMR	 8
-#define LLC_CONN_EV_TYPE_RPT_STATUS	 9
-#define LLC_CONN_EV_TYPE_SENDACK_TMR	10
-
-#define NBR_CONN_EV		   5
-/* Connection events which cause state transitions when fully qualified */
-
-#define LLC_CONN_EV_CONN_REQ				 1
-#define LLC_CONN_EV_CONN_RESP				 2
-#define LLC_CONN_EV_DATA_REQ				 3
-#define LLC_CONN_EV_DISC_REQ				 4
-#define LLC_CONN_EV_RESET_REQ				 5
-#define LLC_CONN_EV_RESET_RESP				 6
-#define LLC_CONN_EV_LOCAL_BUSY_DETECTED			 7
-#define LLC_CONN_EV_LOCAL_BUSY_CLEARED			 8
-#define LLC_CONN_EV_RX_BAD_PDU				 9
-#define LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X		10
-#define LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X		11
-#define LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X		12
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X			13
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_UNEXPD_Ns	14
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_INVAL_Ns	15
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X			16
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_UNEXPD_Ns	17
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_INVAL_Ns	18
-#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_X		19
-#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X		20
-#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_X		21
-#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_X		22
-#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_X		23
-#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_X		24
-#define LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X		25
-#define LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X		26
-#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_X		27
-#define LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_X		28
-#define LLC_CONN_EV_RX_XXX_YYY				29
-#define LLC_CONN_EV_RX_ZZZ_CMD_Pbit_SET_X_INVAL_Nr	30
-#define LLC_CONN_EV_RX_ZZZ_RSP_Fbit_SET_X_INVAL_Nr	31
-#define LLC_CONN_EV_P_TMR_EXP				32
-#define LLC_CONN_EV_ACK_TMR_EXP				33
-#define LLC_CONN_EV_REJ_TMR_EXP				34
-#define LLC_CONN_EV_BUSY_TMR_EXP			35
-#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_1		36
-#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_0		37
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns	38
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns	39
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns	40
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns	41
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_0			42
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_0			43
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_1			44
-#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0		45
-#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0		46
-#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1		47
-#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1		48
-#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0		49
-#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0		50
-#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1		51
-#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1		52
-#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0		53
-#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0		54
-#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1		55
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_1			56
-#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1		57
-#define LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_1		58
-#define LLC_CONN_EV_TX_BUFF_FULL			59
-
-#define LLC_CONN_EV_INIT_P_F_CYCLE			100
-/*
- * Connection event qualifiers; for some events a certain combination of
- * these qualifiers must be TRUE before event recognized valid for state;
- * these constants act as indexes into the Event Qualifier function
- * table
- */
-#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_1		 1
-#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_0		 2
-#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_2		 3
-#define LLC_CONN_EV_QFY_P_FLAG_EQ_1		 4
-#define LLC_CONN_EV_QFY_P_FLAG_EQ_0		 5
-#define LLC_CONN_EV_QFY_P_FLAG_EQ_Fbit		 6
-#define LLC_CONN_EV_QFY_REMOTE_BUSY_EQ_0	 7
-#define LLC_CONN_EV_QFY_RETRY_CNT_LT_N2		 8
-#define LLC_CONN_EV_QFY_RETRY_CNT_GTE_N2	 9
-#define LLC_CONN_EV_QFY_S_FLAG_EQ_1		10
-#define LLC_CONN_EV_QFY_S_FLAG_EQ_0		11
-#define LLC_CONN_EV_QFY_INIT_P_F_CYCLE		12
-
-struct llc_conn_state_ev {
-	u8 type;
-	u8 prim;
-	u8 prim_type;
-	u8 reason;
-	u8 status;
-	u8 ind_prim;
-	u8 cfm_prim;
-};
-
-static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
-{
-	return (struct llc_conn_state_ev *)skb->cb;
-}
-
-typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
-typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
-
-extern int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_disc_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rst_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_local_busy_detected(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_local_busy_cleared(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rx_bad_pdu(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rx_disc_cmd_pbit_set_x(struct sock *sk,
-					      struct sk_buff *skb);
-extern int llc_conn_ev_rx_dm_rsp_fbit_set_x(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_rx_frmr_rsp_fbit_set_x(struct sock *sk,
-					      struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_x_inval_ns(struct sock *sk,
-						    struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_x(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_x_unexpd_ns(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_x_inval_ns(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_rsp_fbit_set_x(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_sabme_cmd_pbit_set_x(struct sock *sk,
-					       struct sk_buff *skb);
-extern int llc_conn_ev_rx_ua_rsp_fbit_set_x(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_rx_xxx_cmd_pbit_set_x(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_xxx_rsp_fbit_set_x(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_zzz_cmd_pbit_set_x_inval_nr(struct sock *sk,
-						      struct sk_buff *skb);
-extern int llc_conn_ev_rx_zzz_rsp_fbit_set_x_inval_nr(struct sock *sk,
-						      struct sk_buff *skb);
-extern int llc_conn_ev_p_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_ack_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rej_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_busy_tmr_exp(struct sock *sk, struct sk_buff *skb);
-/* NOT_USED functions and their variations */
-extern int llc_conn_ev_rx_xxx_cmd_pbit_set_1(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_0(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_1(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_0(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_1(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_cmd_pbit_set_0(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_cmd_pbit_set_1(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_rsp_fbit_set_0(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_rsp_fbit_set_1(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_cmd_pbit_set_0(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_cmd_pbit_set_1(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_rsp_fbit_set_0(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_rsp_fbit_set_1(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_cmd_pbit_set_0(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_cmd_pbit_set_1(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_rsp_fbit_set_0(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_rsp_fbit_set_1(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_rx_any_frame(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_tx_buffer_full(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_init_p_f_cycle(struct sock *sk, struct sk_buff *skb);
-
-/* Available connection action qualifiers */
-extern int llc_conn_ev_qlfy_data_flag_eq_1(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_data_flag_eq_0(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_data_flag_eq_2(struct sock *sk,
-					   struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_p_flag_eq_1(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_last_frame_eq_1(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_last_frame_eq_0(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_p_flag_eq_0(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_p_flag_eq_f(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_remote_busy_eq_0(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_remote_busy_eq_1(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_retry_cnt_lt_n2(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_retry_cnt_gte_n2(struct sock *sk,
-					     struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_s_flag_eq_1(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_s_flag_eq_0(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_cause_flag_eq_1(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_cause_flag_eq_0(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_conn(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_disc(struct sock *sk,
-					    struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_failed(struct sock *sk,
-					      struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_remote_busy(struct sock *sk,
-						  struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_refuse(struct sock *sk,
-					      struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_conflict(struct sock *sk,
-						struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_rst_done(struct sock *sk,
-						struct sk_buff *skb);
-
-static __inline__ int llc_conn_space(struct sock *sk, struct sk_buff *skb)
-{
-	return atomic_read(&sk->sk_rmem_alloc) + skb->truesize <
-	       (unsigned)sk->sk_rcvbuf;
-}
-#endif /* LLC_C_EV_H */
diff -Nru a/include/net/llc_c_st.h b/include/net/llc_c_st.h
--- a/include/net/llc_c_st.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,48 +0,0 @@
-#ifndef LLC_C_ST_H
-#define LLC_C_ST_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- *		2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* Connection component state management */
-/* connection states */
-#define LLC_CONN_OUT_OF_SVC		 0	/* prior to allocation */
- 
-#define LLC_CONN_STATE_ADM		 1	/* disc, initial state */
-#define LLC_CONN_STATE_SETUP		 2	/* disconnected state */
-#define LLC_CONN_STATE_NORMAL		 3	/* connected state */
-#define LLC_CONN_STATE_BUSY		 4	/* connected state */
-#define LLC_CONN_STATE_REJ		 5	/* connected state */
-#define LLC_CONN_STATE_AWAIT		 6	/* connected state */
-#define LLC_CONN_STATE_AWAIT_BUSY	 7	/* connected state */
-#define LLC_CONN_STATE_AWAIT_REJ	 8	/* connected state */
-#define LLC_CONN_STATE_D_CONN		 9	/* disconnected state */
-#define LLC_CONN_STATE_RESET		10	/* disconnected state */
-#define LLC_CONN_STATE_ERROR		11	/* disconnected state */
-#define LLC_CONN_STATE_TEMP		12	/* disconnected state */
-
-#define NBR_CONN_STATES			12	/* size of state table */
-#define NO_STATE_CHANGE			100
-
-/* Connection state table structure */
-struct llc_conn_state_trans {
-	llc_conn_ev_t	   ev;
-	u8		   next_state;
-	llc_conn_ev_qfyr_t *ev_qualifiers;
-	llc_conn_action_t  *ev_actions;
-};
-
-struct llc_conn_state {
-	u8			    current_state;
-	struct llc_conn_state_trans **transitions;
-};
-
-extern struct llc_conn_state llc_conn_state_table[];
-#endif /* LLC_C_ST_H */
diff -Nru a/include/net/llc_conn.h b/include/net/llc_conn.h
--- a/include/net/llc_conn.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,117 +0,0 @@
-#ifndef LLC_CONN_H
-#define LLC_CONN_H
-/*
- * Copyright (c) 1997 by Procom Technology, Inc.
- * 		 2001, 2002 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-#include <linux/timer.h>
-#include <net/llc_if.h>
-#include <linux/llc.h>
-
-#define LLC_EVENT                1
-#define LLC_PACKET               2
-
-#define LLC_P_TIME               2
-#define LLC_ACK_TIME             1
-#define LLC_REJ_TIME             3
-#define LLC_BUSY_TIME            3
-
-struct llc_timer {
-	struct timer_list timer;
-	u16		  expire;	/* timer expire time */
-};
-
-struct llc_opt {
-	struct sock	    *sk;		/* sock that has this llc_opt */
-	struct sockaddr_llc addr;		/* address sock is bound to */
-	u8		    state;		/* state of connection */
-	struct llc_sap	    *sap;		/* pointer to parent SAP */
-	struct llc_addr	    laddr;		/* lsap/mac pair */
-	struct llc_addr	    daddr;		/* dsap/mac pair */
-	struct net_device   *dev;		/* device to send to remote */
-	u8		    retry_count;	/* number of retries */
-	u8		    ack_must_be_send;
-	u8		    first_pdu_Ns;
-	u8		    npta;
-	struct llc_timer    ack_timer;
-	struct llc_timer    pf_cycle_timer;
-	struct llc_timer    rej_sent_timer;
-	struct llc_timer    busy_state_timer;	/* ind busy clr at remote LLC */
-	u8		    vS;			/* seq# next in-seq I-PDU tx'd*/
-	u8		    vR;			/* seq# next in-seq I-PDU rx'd*/
-	u32		    n2;			/* max nbr re-tx's for timeout*/
-	u32		    n1;			/* max nbr octets in I PDU */
-	u8		    k;			/* tx window size; max = 127 */
-	u8		    rw;			/* rx window size; max = 127 */
-	u8		    p_flag;		/* state flags */
-	u8		    f_flag;
-	u8		    s_flag;
-	u8		    data_flag;
-	u8		    remote_busy_flag;
-	u8		    cause_flag;
-	struct sk_buff_head pdu_unack_q;	/* PUDs sent/waiting ack */
-	u16		    link;		/* network layer link number */
-	u8		    X;			/* a temporary variable */
-	u8		    ack_pf;		/* this flag indicates what is
-						   the P-bit of acknowledge */
-	u8		    failed_data_req; /* recognize that already exist a
-						failed llc_data_req_handler
-						(tx_buffer_full or unacceptable
-						state */
-	u8		    dec_step;
-	u8		    inc_cntr;
-	u8		    dec_cntr;
-	u8		    connect_step;
-	u8		    last_nr;	   /* NR of last pdu received */
-	u32		    rx_pdu_hdr;	   /* used for saving header of last pdu
-					      received and caused sending FRMR.
-					      Used for resending FRMR */
-};
-
-#define llc_sk(__sk) ((struct llc_opt *)(__sk)->sk_protinfo)
-
-static __inline__ void llc_set_backlog_type(struct sk_buff *skb, char type)
-{
-	skb->cb[sizeof(skb->cb) - 1] = type;
-}
-
-static __inline__ char llc_backlog_type(struct sk_buff *skb)
-{
-	return skb->cb[sizeof(skb->cb) - 1];
-}
-
-extern struct sock *llc_sk_alloc(int family, int priority);
-extern void llc_sk_free(struct sock *sk);
-
-extern void llc_sk_reset(struct sock *sk);
-extern int llc_sk_init(struct sock *sk);
-
-/* Access to a connection */
-extern int llc_conn_state_process(struct sock *sk, struct sk_buff *skb);
-extern void llc_conn_send_pdu(struct sock *sk, struct sk_buff *skb);
-extern void llc_conn_rtn_pdu(struct sock *sk, struct sk_buff *skb);
-extern void llc_conn_resend_i_pdu_as_cmd(struct sock *sk, u8 nr,
-					 u8 first_p_bit);
-extern void llc_conn_resend_i_pdu_as_rsp(struct sock *sk, u8 nr,
-					 u8 first_f_bit);
-extern int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr,
-				      u16 *how_many_unacked);
-extern struct sock *llc_lookup_established(struct llc_sap *sap,
-					   struct llc_addr *daddr,
-					   struct llc_addr *laddr);
-extern struct sock *llc_lookup_listener(struct llc_sap *sap,
-					struct llc_addr *laddr);
-extern void llc_sap_add_socket(struct llc_sap *sap, struct sock *sk);
-extern void llc_sap_remove_socket(struct llc_sap *sap, struct sock *sk);
-
-extern u8 llc_data_accept_state(u8 state);
-extern void llc_build_offset_table(void);
-extern int llc_release_sockets(struct llc_sap *sap);
-#endif /* LLC_CONN_H */
diff -Nru a/include/net/llc_if.h b/include/net/llc_if.h
--- a/include/net/llc_if.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,101 +0,0 @@
-#ifndef LLC_IF_H
-#define LLC_IF_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* Defines LLC interface to network layer */
-/* Available primitives */
-#include <linux/if.h>
-#include <linux/if_arp.h>
-#include <linux/llc.h>
-#include <net/llc.h>
-
-#define LLC_DATAUNIT_PRIM	1
-#define LLC_CONN_PRIM		2
-#define LLC_DATA_PRIM		3
-#define LLC_DISC_PRIM		4
-#define LLC_RESET_PRIM		5
-#define LLC_FLOWCONTROL_PRIM	6 /* Not supported at this time */
-#define LLC_DISABLE_PRIM	7
-#define LLC_XID_PRIM		8
-#define LLC_TEST_PRIM		9
-#define LLC_SAP_ACTIVATION     10
-#define LLC_SAP_DEACTIVATION   11
-
-#define LLC_NBR_PRIMITIVES     11
-
-#define LLC_IND			1
-#define LLC_CONFIRM		2
-
-/* Primitive type */
-#define LLC_PRIM_TYPE_REQ	1
-#define LLC_PRIM_TYPE_IND	2
-#define LLC_PRIM_TYPE_RESP	3
-#define LLC_PRIM_TYPE_CONFIRM	4
-
-/* Reset reasons, remote entity or local LLC */
-#define LLC_RESET_REASON_REMOTE	1
-#define LLC_RESET_REASON_LOCAL	2
-
-/* Disconnect reasons */
-#define LLC_DISC_REASON_RX_DM_RSP_PDU	0
-#define LLC_DISC_REASON_RX_DISC_CMD_PDU	1
-#define LLC_DISC_REASON_ACK_TMR_EXP	2
-
-/* Confirm reasons */
-#define LLC_STATUS_CONN		0 /* connect confirm & reset confirm */
-#define LLC_STATUS_DISC		1 /* connect confirm & reset confirm */
-#define LLC_STATUS_FAILED	2 /* connect confirm & reset confirm */
-#define LLC_STATUS_IMPOSSIBLE	3 /* connect confirm */
-#define LLC_STATUS_RECEIVED	4 /* data conn */
-#define LLC_STATUS_REMOTE_BUSY	5 /* data conn */
-#define LLC_STATUS_REFUSE	6 /* data conn */
-#define LLC_STATUS_CONFLICT	7 /* disconnect conn */
-#define LLC_STATUS_RESET_DONE	8 /*  */
-
-extern u8 llc_mac_null_var[IFHWADDRLEN];
-
-/**
- *      llc_mac_null - determines if a address is a null mac address
- *      @mac: Mac address to test if null.
- *
- *      Determines if a given address is a null mac address.  Returns 0 if the
- *      address is not a null mac, 1 if the address is a null mac.
- */
-static __inline__ int llc_mac_null(u8 *mac)
-{
-	return !memcmp(mac, llc_mac_null_var, IFHWADDRLEN);
-}
-
-static __inline__ int llc_addrany(struct llc_addr *addr)
-{
-	return llc_mac_null(addr->mac) && !addr->lsap;
-}
-
-/**
- *	llc_mac_match - determines if two mac addresses are the same
- *	@mac1: First mac address to compare.
- *	@mac2: Second mac address to compare.
- *
- *	Determines if two given mac address are the same.  Returns 0 if there
- *	is not a complete match up to len, 1 if a complete match up to len is
- *	found.
- */
-static __inline__ int llc_mac_match(u8 *mac1, u8 *mac2)
-{
-	return !memcmp(mac1, mac2, IFHWADDRLEN);
-}
-
-extern int llc_establish_connection(struct sock *sk, u8 *lmac,
-				    u8 *dmac, u8 dsap);
-extern int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb);
-extern int llc_send_disc(struct sock *sk);
-#endif /* LLC_IF_H */
diff -Nru a/include/net/llc_pdu.h b/include/net/llc_pdu.h
--- a/include/net/llc_pdu.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,437 +0,0 @@
-#ifndef LLC_PDU_H
-#define LLC_PDU_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <linux/if_ether.h>
-#include <linux/if_tr.h>
-
-/* Lengths of frame formats */
-#define LLC_PDU_LEN_I	4       /* header and 2 control bytes */
-#define LLC_PDU_LEN_S	4
-#define LLC_PDU_LEN_U	3       /* header and 1 control byte */
-/* Known SAP addresses */
-#define LLC_GLOBAL_SAP	0xFF
-#define LLC_NULL_SAP	0x00	/* not network-layer visible */
-#define LLC_MGMT_INDIV	0x02	/* station LLC mgmt indiv addr */
-#define LLC_MGMT_GRP	0x03	/* station LLC mgmt group addr */
-#define LLC_RDE_SAP	0xA6	/* route ... */
-
-/* SAP field bit masks */
-#define LLC_ISO_RESERVED_SAP	0x02
-#define LLC_SAP_GROUP_DSAP	0x01
-#define LLC_SAP_RESP_SSAP	0x01
-
-/* Group/individual DSAP indicator is DSAP field */
-#define LLC_PDU_GROUP_DSAP_MASK    0x01
-#define LLC_PDU_IS_GROUP_DSAP(pdu)      \
-	((pdu->dsap & LLC_PDU_GROUP_DSAP_MASK) ? 0 : 1)
-#define LLC_PDU_IS_INDIV_DSAP(pdu)      \
-	(!(pdu->dsap & LLC_PDU_GROUP_DSAP_MASK) ? 0 : 1)
-
-/* Command/response PDU indicator in SSAP field */
-#define LLC_PDU_CMD_RSP_MASK	0x01
-#define LLC_PDU_CMD		0
-#define LLC_PDU_RSP		1
-#define LLC_PDU_IS_CMD(pdu)    ((pdu->ssap & LLC_PDU_RSP) ? 0 : 1)
-#define LLC_PDU_IS_RSP(pdu)    ((pdu->ssap & LLC_PDU_RSP) ? 1 : 0)
-
-/* Get PDU type from 2 lowest-order bits of control field first byte */
-#define LLC_PDU_TYPE_I_MASK    0x01	/* 16-bit control field */
-#define LLC_PDU_TYPE_S_MASK    0x03
-#define LLC_PDU_TYPE_U_MASK    0x03	/* 8-bit control field */
-#define LLC_PDU_TYPE_MASK      0x03
-
-#define LLC_PDU_TYPE_I	0	/* first bit */
-#define LLC_PDU_TYPE_S	1	/* first two bits */
-#define LLC_PDU_TYPE_U	3	/* first two bits */
-
-#define LLC_PDU_TYPE_IS_I(pdu) \
-	((!(pdu->ctrl_1 & LLC_PDU_TYPE_I_MASK)) ? 1 : 0)
-
-#define LLC_PDU_TYPE_IS_U(pdu) \
-	(((pdu->ctrl_1 & LLC_PDU_TYPE_U_MASK) == LLC_PDU_TYPE_U) ? 1 : 0)
-
-#define LLC_PDU_TYPE_IS_S(pdu) \
-	(((pdu->ctrl_1 & LLC_PDU_TYPE_S_MASK) == LLC_PDU_TYPE_S) ? 1 : 0)
-
-/* U-format PDU control field masks */
-#define LLC_U_PF_BIT_MASK      0x10	/* P/F bit mask */
-#define LLC_U_PF_IS_1(pdu)     ((pdu->ctrl_1 & LLC_U_PF_BIT_MASK) ? 1 : 0)
-#define LLC_U_PF_IS_0(pdu)     ((!(pdu->ctrl_1 & LLC_U_PF_BIT_MASK)) ? 1 : 0)
-
-#define LLC_U_PDU_CMD_MASK     0xEC	/* cmd/rsp mask */
-#define LLC_U_PDU_CMD(pdu)     (pdu->ctrl_1 & LLC_U_PDU_CMD_MASK)
-#define LLC_U_PDU_RSP(pdu)     (pdu->ctrl_1 & LLC_U_PDU_CMD_MASK)
-
-#define LLC_1_PDU_CMD_UI       0x00	/* Type 1 cmds/rsps */
-#define LLC_1_PDU_CMD_XID      0xAC
-#define LLC_1_PDU_CMD_TEST     0xE0
-
-#define LLC_2_PDU_CMD_SABME    0x6C	/* Type 2 cmds/rsps */
-#define LLC_2_PDU_CMD_DISC     0x40
-#define LLC_2_PDU_RSP_UA       0x60
-#define LLC_2_PDU_RSP_DM       0x0C
-#define LLC_2_PDU_RSP_FRMR     0x84
-
-/* Type 1 operations */
-
-/* XID information field bit masks */
-
-/* LLC format identifier (byte 1) */
-#define LLC_XID_FMT_ID		0x81	/* first byte must be this */
-
-/* LLC types/classes identifier (byte 2) */
-#define LLC_XID_CLASS_ZEROS_MASK	0xE0	/* these must be zeros */
-#define LLC_XID_CLASS_MASK		0x1F	/* AND with byte to get below */
-
-#define LLC_XID_NULL_CLASS_1	0x01	/* if NULL LSAP...use these */
-#define LLC_XID_NULL_CLASS_2	0x03
-#define LLC_XID_NULL_CLASS_3	0x05
-#define LLC_XID_NULL_CLASS_4	0x07
-
-#define LLC_XID_NNULL_TYPE_1	0x01	/* if non-NULL LSAP...use these */
-#define LLC_XID_NNULL_TYPE_2	0x02
-#define LLC_XID_NNULL_TYPE_3	0x04
-#define LLC_XID_NNULL_TYPE_1_2	0x03
-#define LLC_XID_NNULL_TYPE_1_3	0x05
-#define LLC_XID_NNULL_TYPE_2_3	0x06
-#define LLC_XID_NNULL_ALL		0x07
-
-/* Sender Receive Window (byte 3) */
-#define LLC_XID_RW_MASK	0xFE	/* AND with value to get below */
-
-#define LLC_XID_MIN_RW	0x02	/* lowest-order bit always zero */
-
-/* Type 2 operations */
-
-#define LLC_2_SEQ_NBR_MODULO   ((u8) 128)
-
-/* I-PDU masks ('ctrl' is I-PDU control word) */
-#define LLC_I_GET_NS(pdu)     (u8)((pdu->ctrl_1 & 0xFE) >> 1)
-#define LLC_I_GET_NR(pdu)     (u8)((pdu->ctrl_2 & 0xFE) >> 1)
-
-#define LLC_I_PF_BIT_MASK      0x01
-
-#define LLC_I_PF_IS_0(pdu)     ((!(pdu->ctrl_2 & LLC_I_PF_BIT_MASK)) ? 1 : 0)
-#define LLC_I_PF_IS_1(pdu)     ((pdu->ctrl_2 & LLC_I_PF_BIT_MASK) ? 1 : 0)
-
-/* S-PDU supervisory commands and responses */
-
-#define LLC_S_PDU_CMD_MASK     0x0C
-#define LLC_S_PDU_CMD(pdu)     (pdu->ctrl_1 & LLC_S_PDU_CMD_MASK)
-#define LLC_S_PDU_RSP(pdu)     (pdu->ctrl_1 & LLC_S_PDU_CMD_MASK)
-
-#define LLC_2_PDU_CMD_RR       0x00	/* rx ready cmd */
-#define LLC_2_PDU_RSP_RR       0x00	/* rx ready rsp */
-#define LLC_2_PDU_CMD_REJ      0x08	/* reject PDU cmd */
-#define LLC_2_PDU_RSP_REJ      0x08	/* reject PDU rsp */
-#define LLC_2_PDU_CMD_RNR      0x04	/* rx not ready cmd */
-#define LLC_2_PDU_RSP_RNR      0x04	/* rx not ready rsp */
-
-#define LLC_S_PF_BIT_MASK      0x01
-#define LLC_S_PF_IS_0(pdu)     ((!(pdu->ctrl_2 & LLC_S_PF_BIT_MASK)) ? 1 : 0)
-#define LLC_S_PF_IS_1(pdu)     ((pdu->ctrl_2 & LLC_S_PF_BIT_MASK) ? 1 : 0)
-
-#define PDU_SUPV_GET_Nr(pdu)   ((pdu->ctrl_2 & 0xFE) >> 1)
-#define PDU_GET_NEXT_Vr(sn)    (++sn & ~LLC_2_SEQ_NBR_MODULO)
-
-/* FRMR information field macros */
-
-#define FRMR_INFO_LENGTH       5	/* 5 bytes of information */
-
-/*
- * info is pointer to FRMR info field structure; 'rej_ctrl' is byte pointer
- * (if U-PDU) or word pointer to rejected PDU control field
- */
-#define FRMR_INFO_SET_REJ_CNTRL(info,rej_ctrl) \
-	info->rej_pdu_ctrl = ((*((u8 *) rej_ctrl) & \
-				LLC_PDU_TYPE_U) != LLC_PDU_TYPE_U ? \
-				(u16)*((u16 *) rej_ctrl) : \
-				(((u16) *((u8 *) rej_ctrl)) & 0x00FF))
-
-/*
- * Info is pointer to FRMR info field structure; 'vs' is a byte containing
- * send state variable value in low-order 7 bits (insure the lowest-order
- * bit remains zero (0))
- */
-#define FRMR_INFO_SET_Vs(info,vs) (info->curr_ssv = (((u8) vs) << 1))
-#define FRMR_INFO_SET_Vr(info,vr) (info->curr_rsv = (((u8) vr) << 1))
-
-/*
- * Info is pointer to FRMR info field structure; 'cr' is a byte containing
- * the C/R bit value in the low-order bit
- */
-#define FRMR_INFO_SET_C_R_BIT(info, cr)  (info->curr_rsv |= (((u8) cr) & 0x01))
-
-/*
- * In the remaining five macros, 'info' is pointer to FRMR info field
- * structure; 'ind' is a byte containing the bit value to set in the
- * lowest-order bit)
- */
-#define FRMR_INFO_SET_INVALID_PDU_CTRL_IND(info, ind) \
-       (info->ind_bits = ((info->ind_bits & 0xFE) | (((u8) ind) & 0x01)))
-
-#define FRMR_INFO_SET_INVALID_PDU_INFO_IND(info, ind) \
-       (info->ind_bits = ( (info->ind_bits & 0xFD) | (((u8) ind) & 0x02)))
-
-#define FRMR_INFO_SET_PDU_INFO_2LONG_IND(info, ind) \
-       (info->ind_bits = ( (info->ind_bits & 0xFB) | (((u8) ind) & 0x04)))
-
-#define FRMR_INFO_SET_PDU_INVALID_Nr_IND(info, ind) \
-       (info->ind_bits = ( (info->ind_bits & 0xF7) | (((u8) ind) & 0x08)))
-
-#define FRMR_INFO_SET_PDU_INVALID_Ns_IND(info, ind) \
-       (info->ind_bits = ( (info->ind_bits & 0xEF) | (((u8) ind) & 0x10)))
-
-/* Sequence-numbered PDU format (4 bytes in length) */
-struct llc_pdu_sn {
-	u8 dsap;
-	u8 ssap;
-	u8 ctrl_1;
-	u8 ctrl_2;
-};
-
-static inline struct llc_pdu_sn *llc_pdu_sn_hdr(struct sk_buff *skb)
-{
-	return (struct llc_pdu_sn *)skb->nh.raw;
-}
-
-/* Un-numbered PDU format (3 bytes in length) */
-struct llc_pdu_un {
-	u8 dsap;
-	u8 ssap;
-	u8 ctrl_1;
-};
-
-static inline struct llc_pdu_un *llc_pdu_un_hdr(struct sk_buff *skb)
-{
-	return (struct llc_pdu_un *)skb->nh.raw;
-}
-
-static inline void *llc_set_pdu_hdr(struct sk_buff *skb, void *ptr)
-{
-	return skb->nh.raw = ptr;
-}
-
-/**
- *	llc_pdu_header_init - initializes pdu header
- *	@skb: input skb that header must be set into it.
- *	@type: type of PDU (U, I or S).
- *	@ssap: source sap.
- *	@dsap: destination sap.
- *	@cr: command/response bit (0 or 1).
- *
- *	This function sets DSAP, SSAP and command/Response bit in LLC header.
- */
-static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
-				       u8 ssap, u8 dsap, u8 cr)
-{
-	const int hlen = type == LLC_PDU_TYPE_U ? 3 : 4;
-	struct llc_pdu_un *pdu = llc_set_pdu_hdr(skb, skb_push(skb, hlen));
-	pdu->dsap = dsap;
-	pdu->ssap = ssap;
-	pdu->ssap |= cr;
-}
-
-/**
- *	llc_pdu_decode_sa - extracs source address (MAC) of input frame
- *	@skb: input skb that source address must be extracted from it.
- *	@sa: pointer to source address (6 byte array).
- *
- *	This function extracts source address(MAC) of input frame.
- */
-static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
-{
-	if (skb->protocol == ntohs(ETH_P_802_2))
-		memcpy(sa, ((struct ethhdr *)skb->mac.raw)->h_source, ETH_ALEN);
-	else if (skb->protocol == ntohs(ETH_P_TR_802_2))
-		memcpy(sa, ((struct trh_hdr *)skb->mac.raw)->saddr, ETH_ALEN);
-}
-
-/**
- *	llc_pdu_decode_da - extracts dest address of input frame
- *	@skb: input skb that destination address must be extracted from it
- *	@sa: pointer to destination address (6 byte array).
- *
- *	This function extracts destination address(MAC) of input frame.
- */
-static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
-{
-	if (skb->protocol == ntohs(ETH_P_802_2))
-		memcpy(da, ((struct ethhdr *)skb->mac.raw)->h_dest, ETH_ALEN);
-	else if (skb->protocol == ntohs(ETH_P_TR_802_2))
-		memcpy(da, ((struct trh_hdr *)skb->mac.raw)->daddr, ETH_ALEN);
-}
-
-/**
- *	llc_pdu_decode_ssap - extracts source SAP of input frame
- *	@skb: input skb that source SAP must be extracted from it.
- *	@ssap: source SAP (output argument).
- *
- *	This function extracts source SAP of input frame. Right bit of SSAP is
- *	command/response bit.
- */
-static inline void llc_pdu_decode_ssap(struct sk_buff *skb, u8 *ssap)
-{
-	*ssap = llc_pdu_un_hdr(skb)->ssap & 0xFE;
-}
-
-/**
- *	llc_pdu_decode_dsap - extracts dest SAP of input frame
- *	@skb: input skb that destination SAP must be extracted from it.
- *	@dsap: destination SAP (output argument).
- *
- *	This function extracts destination SAP of input frame. right bit of
- *	DSAP designates individual/group SAP.
- */
-static inline void llc_pdu_decode_dsap(struct sk_buff *skb, u8 *dsap)
-{
-	*dsap = llc_pdu_un_hdr(skb)->dsap & 0xFE;
-}
-
-/**
- *	llc_pdu_init_as_ui_cmd - sets LLC header as UI PDU
- *	@skb: input skb that header must be set into it.
- *
- *	This function sets third byte of LLC header as a UI PDU.
- */
-static inline void llc_pdu_init_as_ui_cmd(struct sk_buff *skb)
-{
-	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
-	pdu->ctrl_1  = LLC_PDU_TYPE_U;
-	pdu->ctrl_1 |= LLC_1_PDU_CMD_UI;
-}
-
-/**
- *	llc_pdu_init_as_test_cmd - sets PDU as TEST
- *	@skb - Address of the skb to build
- *
- * 	Sets a PDU as TEST
- */
-static inline void llc_pdu_init_as_test_cmd(struct sk_buff *skb)
-{
-	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
-	pdu->ctrl_1  = LLC_PDU_TYPE_U;
-	pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
-	pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
-}
-
-/**
- *	llc_pdu_init_as_test_rsp - build TEST response PDU
- *	@skb: Address of the skb to build
- *	@ev_skb: The received TEST command PDU frame
- *
- *	Builds a pdu frame as a TEST response.
- */
-static inline void llc_pdu_init_as_test_rsp(struct sk_buff *skb,
-					    struct sk_buff *ev_skb)
-{
-	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
-	pdu->ctrl_1  = LLC_PDU_TYPE_U;
-	pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
-	pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
-	if (ev_skb->protocol == ntohs(ETH_P_802_2)) {
-		struct llc_pdu_un *ev_pdu = llc_pdu_un_hdr(ev_skb);
-		int dsize;
-
-		dsize = ntohs(((struct ethhdr *)ev_skb->mac.raw)->h_proto) - 3;
-		memcpy(((u8 *)pdu) + 3, ((u8 *)ev_pdu) + 3, dsize);
-		skb_put(skb, dsize);
-	}
-}
-
-/* LLC Type 1 XID command/response information fields format */
-struct llc_xid_info {
-	u8 fmt_id;	/* always 0x18 for LLC */
-	u8 type;	/* different if NULL/non-NULL LSAP */
-	u8 rw;		/* sender receive window */
-};
-
-/**
- *	llc_pdu_init_as_xid_cmd - sets bytes 3, 4 & 5 of LLC header as XID
- *	@skb: input skb that header must be set into it.
- *
- *	This function sets third,fourth,fifth and sixth bytes of LLC header as
- *	a XID PDU.
- */
-static inline void llc_pdu_init_as_xid_cmd(struct sk_buff *skb,
-					   u8 svcs_supported, u8 rx_window)
-{
-	struct llc_xid_info *xid_info;
-	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
-	pdu->ctrl_1	 = LLC_PDU_TYPE_U;
-	pdu->ctrl_1	|= LLC_1_PDU_CMD_XID;
-	pdu->ctrl_1	|= LLC_U_PF_BIT_MASK;
-	xid_info	 = (struct llc_xid_info *)(((u8 *)&pdu->ctrl_1) + 1);
-	xid_info->fmt_id = LLC_XID_FMT_ID;	/* 0x81 */
-	xid_info->type	 = svcs_supported;
-	xid_info->rw	 = rx_window << 1;	/* size of receive window */
-	skb_put(skb, 3);
-}
-
-/**
- *	llc_pdu_init_as_xid_rsp - builds XID response PDU
- *	@skb: Address of the skb to build
- *	@svcs_supported: The class of the LLC (I or II)
- *	@rx_window: The size of the receive window of the LLC
- *
- *	Builds a pdu frame as an XID response.
- */
-static inline void llc_pdu_init_as_xid_rsp(struct sk_buff *skb,
-					   u8 svcs_supported, u8 rx_window)
-{
-	struct llc_xid_info *xid_info;
-	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
-	pdu->ctrl_1	 = LLC_PDU_TYPE_U;
-	pdu->ctrl_1	|= LLC_1_PDU_CMD_XID;
-	pdu->ctrl_1	|= LLC_U_PF_BIT_MASK;
-
-	xid_info	 = (struct llc_xid_info *)(((u8 *)&pdu->ctrl_1) + 1);
-	xid_info->fmt_id = LLC_XID_FMT_ID;
-	xid_info->type	 = svcs_supported;
-	xid_info->rw	 = rx_window << 1;
-	skb_put(skb, 3);
-}
-
-/* LLC Type 2 FRMR response information field format */
-struct llc_frmr_info {
-	u16 rej_pdu_ctrl;	/* bits 1-8 if U-PDU */
-	u8  curr_ssv;		/* current send state variable val */
-	u8  curr_rsv;		/* current receive state variable */
-	u8  ind_bits;		/* indicator bits set with macro */
-};
-
-extern void llc_pdu_set_cmd_rsp(struct sk_buff *skb, u8 type);
-extern void llc_pdu_set_pf_bit(struct sk_buff *skb, u8 bit_value);
-extern void llc_pdu_decode_pf_bit(struct sk_buff *skb, u8 *pf_bit);
-extern void llc_pdu_decode_cr_bit(struct sk_buff *skb, u8 *cr_bit);
-extern void llc_pdu_init_as_disc_cmd(struct sk_buff *skb, u8 p_bit);
-extern void llc_pdu_init_as_i_cmd(struct sk_buff *skb, u8 p_bit, u8 ns, u8 nr);
-extern void llc_pdu_init_as_rej_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
-extern void llc_pdu_init_as_rnr_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
-extern void llc_pdu_init_as_rr_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
-extern void llc_pdu_init_as_sabme_cmd(struct sk_buff *skb, u8 p_bit);
-extern void llc_pdu_init_as_dm_rsp(struct sk_buff *skb, u8 f_bit);
-extern void llc_pdu_init_as_frmr_rsp(struct sk_buff *skb,
-				     struct llc_pdu_sn *prev_pdu,
-				     u8 f_bit, u8 vs, u8 vr, u8 vzyxw);
-extern void llc_pdu_init_as_rr_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
-extern void llc_pdu_init_as_rej_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
-extern void llc_pdu_init_as_rnr_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
-extern void llc_pdu_init_as_ua_rsp(struct sk_buff *skb, u8 f_bit);
-#endif /* LLC_PDU_H */
diff -Nru a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h
--- a/include/net/llc_s_ac.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,39 +0,0 @@
-#ifndef LLC_S_AC_H
-#define LLC_S_AC_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* SAP component actions */
-#define SAP_ACT_UNITDATA_IND	1
-#define SAP_ACT_SEND_UI		2
-#define SAP_ACT_SEND_XID_C	3
-#define SAP_ACT_SEND_XID_R	4
-#define SAP_ACT_SEND_TEST_C	5
-#define SAP_ACT_SEND_TEST_R	6
-#define SAP_ACT_REPORT_STATUS	7
-#define SAP_ACT_XID_IND		8
-#define SAP_ACT_TEST_IND	9
-
-/* All action functions must look like this */
-typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
-
-extern int llc_sap_action_unitdata_ind(struct llc_sap *sap,
-				       struct sk_buff *skb);
-extern int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_xid_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_xid_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_test_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_test_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_report_status(struct llc_sap *sap,
-					struct sk_buff *skb);
-extern int llc_sap_action_xid_ind(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_test_ind(struct llc_sap *sap, struct sk_buff *skb);
-#endif /* LLC_S_AC_H */
diff -Nru a/include/net/llc_s_ev.h b/include/net/llc_s_ev.h
--- a/include/net/llc_s_ev.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,67 +0,0 @@
-#ifndef LLC_S_EV_H
-#define LLC_S_EV_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <linux/skbuff.h>
-
-/* Defines SAP component events */
-/* Types of events (possible values in 'ev->type') */
-#define LLC_SAP_EV_TYPE_SIMPLE		1
-#define LLC_SAP_EV_TYPE_CONDITION	2
-#define LLC_SAP_EV_TYPE_PRIM		3
-#define LLC_SAP_EV_TYPE_PDU		4   /* command/response PDU */
-#define LLC_SAP_EV_TYPE_ACK_TMR		5
-#define LLC_SAP_EV_TYPE_RPT_STATUS	6
-
-#define LLC_SAP_EV_ACTIVATION_REQ	 1
-#define LLC_SAP_EV_RX_UI		 2
-#define LLC_SAP_EV_UNITDATA_REQ		 3
-#define LLC_SAP_EV_XID_REQ		 4
-#define LLC_SAP_EV_RX_XID_C		 5
-#define LLC_SAP_EV_RX_XID_R		 6
-#define LLC_SAP_EV_TEST_REQ		 7
-#define LLC_SAP_EV_RX_TEST_C		 8
-#define LLC_SAP_EV_RX_TEST_R		 9
-#define LLC_SAP_EV_DEACTIVATION_REQ	10
-
-struct llc_sap_state_ev {
-	u8		prim;
-	u8		prim_type;
-	u8		type;
-	u8		reason;
-	u8		ind_cfm_flag;
-	struct llc_addr saddr;
-	struct llc_addr daddr;
-};
-
-static __inline__ struct llc_sap_state_ev *llc_sap_ev(struct sk_buff *skb)
-{
-	return (struct llc_sap_state_ev *)skb->cb;
-}
-
-struct llc_sap;
-
-typedef int (*llc_sap_ev_t)(struct llc_sap *sap, struct sk_buff *skb);
-
-extern int llc_sap_ev_activation_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_ui(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_unitdata_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_xid_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_xid_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_xid_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_test_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_test_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_test_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_deactivation_req(struct llc_sap *sap,
-				       struct sk_buff *skb);
-#endif /* LLC_S_EV_H */
diff -Nru a/include/net/llc_s_st.h b/include/net/llc_s_st.h
--- a/include/net/llc_s_st.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,32 +0,0 @@
-#ifndef LLC_S_ST_H
-#define LLC_S_ST_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#define LLC_NR_SAP_STATES	2       /* size of state table */
-
-/* structures and types */
-/* SAP state table structure */
-struct llc_sap_state_trans {
-	llc_sap_ev_t	  ev;
-	u8		  next_state;
-	llc_sap_action_t *ev_actions;
-};
-
-struct llc_sap_state {
-	u8			   curr_state;
-	struct llc_sap_state_trans **transitions;
-};
-
-/* only access to SAP state table */
-extern struct llc_sap_state llc_sap_state_table[LLC_NR_SAP_STATES];
-#endif /* LLC_S_ST_H */
diff -Nru a/include/net/llc_sap.h b/include/net/llc_sap.h
--- a/include/net/llc_sap.h	Sat Nov 15 17:04:10 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,31 +0,0 @@
-#ifndef LLC_SAP_H
-#define LLC_SAP_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 		 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-struct llc_sap;
-struct sk_buff;
-struct net_device;
-
-extern void llc_sap_state_process(struct llc_sap *sap, struct sk_buff *skb);
-extern void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb);
-extern void llc_save_primitive(struct sk_buff* skb, unsigned char prim);
-extern struct sk_buff *llc_alloc_frame(struct net_device *dev);
-
-extern void llc_build_and_send_test_pkt(struct llc_sap *sap,
-				        struct sk_buff *skb,
-					unsigned char *dmac,
-					unsigned char dsap);
-extern void llc_build_and_send_xid_pkt(struct llc_sap *sap,
-				       struct sk_buff *skb,
-				       unsigned char *dmac,
-				       unsigned char dsap);
-#endif /* LLC_SAP_H */
diff -Nru a/net/llc/af_llc.c b/net/llc/af_llc.c
--- a/net/llc/af_llc.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/af_llc.c	Sat Nov 15 17:04:10 2003
@@ -27,9 +27,8 @@
 #include <linux/rtnetlink.h>
 #include <linux/init.h>
 #include <net/llc.h>
-#include <net/llc_sap.h>
-#include <net/llc_pdu.h>
-#include <net/llc_conn.h>
+#include "llc_pdu.h"
+#include "llc_conn.h"
 
 /* remember: uninitialized global data is zeroed because its in .bss */
 static u16 llc_ui_sap_last_autoport = LLC_SAP_DYN_START;
diff -Nru a/net/llc/llc_c_ac.c b/net/llc/llc_c_ac.c
--- a/net/llc/llc_c_ac.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_c_ac.c	Sat Nov 15 17:04:10 2003
@@ -17,17 +17,12 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/netdevice.h>
-#include <net/llc_conn.h>
-#include <net/llc_sap.h>
-#include <net/sock.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_c_st.h>
-#include <net/llc_pdu.h>
-#include <net/llc.h>
-
-#include "llc_output.h"
+#include "llc_conn.h"
+#include "llc_sap.h"
+#include "llc_c_ev.h"
+#include "llc_c_ac.h"
+#include "llc_c_st.h"
+#include "llc_pdu.h"
 
 static int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb);
 static void llc_process_tmr_ev(struct sock *sk, struct sk_buff *skb);
diff -Nru a/net/llc/llc_c_ac.h b/net/llc/llc_c_ac.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_c_ac.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,221 @@
+#ifndef LLC_C_AC_H
+#define LLC_C_AC_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+/* Connection component state transition actions */
+/*
+ * Connection state transition actions
+ * (Fb = F bit; Pb = P bit; Xb = X bit)
+ */
+#define LLC_CONN_AC_CLR_REMOTE_BUSY			 1
+#define LLC_CONN_AC_CONN_IND				 2
+#define LLC_CONN_AC_CONN_CONFIRM			 3
+#define LLC_CONN_AC_DATA_IND				 4
+#define LLC_CONN_AC_DISC_IND				 5
+#define LLC_CONN_AC_RESET_IND				 6
+#define LLC_CONN_AC_RESET_CONFIRM			 7
+#define LLC_CONN_AC_REPORT_STATUS			 8
+#define LLC_CONN_AC_CLR_REMOTE_BUSY_IF_Fb_EQ_1		 9
+#define LLC_CONN_AC_STOP_REJ_TMR_IF_DATA_FLAG_EQ_2	10
+#define LLC_CONN_AC_SEND_DISC_CMD_Pb_SET_X		11
+#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_Pb		12
+#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_1		13
+#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_F_FLAG		14
+#define LLC_CONN_AC_SEND_FRMR_RSP_Fb_SET_X		15
+#define LLC_CONN_AC_RESEND_FRMR_RSP_Fb_SET_0		16
+#define LLC_CONN_AC_RESEND_FRMR_RSP_Fb_SET_Pb		17
+#define LLC_CONN_AC_SEND_I_CMD_Pb_SET_1			18
+#define LLC_CONN_AC_RESEND_I_CMD_Pb_SET_1		19
+#define LLC_CONN_AC_RESEND_I_CMD_Pb_SET_1_OR_SEND_RR	20
+#define LLC_CONN_AC_SEND_I_XXX_Xb_SET_0			21
+#define LLC_CONN_AC_RESEND_I_XXX_Xb_SET_0		22
+#define LLC_CONN_AC_RESEND_I_XXX_Xb_SET_0_OR_SEND_RR	23
+#define LLC_CONN_AC_RESEND_I_RSP_Fb_SET_1		24
+#define LLC_CONN_AC_SEND_REJ_CMD_Pb_SET_1		25
+#define LLC_CONN_AC_SEND_REJ_RSP_Fb_SET_1		26
+#define LLC_CONN_AC_SEND_REJ_XXX_Xb_SET_0		27
+#define LLC_CONN_AC_SEND_RNR_CMD_Pb_SET_1		28
+#define LLC_CONN_AC_SEND_RNR_RSP_Fb_SET_1		29
+#define LLC_CONN_AC_SEND_RNR_XXX_Xb_SET_0		30
+#define LLC_CONN_AC_SET_REMOTE_BUSY			31
+#define LLC_CONN_AC_OPTIONAL_SEND_RNR_XXX_Xb_SET_0	32
+#define LLC_CONN_AC_SEND_RR_CMD_Pb_SET_1		33
+#define LLC_CONN_AC_SEND_ACK_CMD_Pb_SET_1		34
+#define LLC_CONN_AC_SEND_RR_RSP_Fb_SET_1		35
+#define LLC_CONN_AC_SEND_ACK_RSP_Fb_SET_1		36
+#define LLC_CONN_AC_SEND_RR_XXX_Xb_SET_0		37
+#define LLC_CONN_AC_SEND_ACK_XXX_Xb_SET_0		38
+#define LLC_CONN_AC_SEND_SABME_CMD_Pb_SET_X		39
+#define LLC_CONN_AC_SEND_UA_RSP_Fb_SET_Pb		40
+#define LLC_CONN_AC_SEND_UA_RSP_Fb_SET_F_FLAG		41
+#define LLC_CONN_AC_S_FLAG_SET_0			42
+#define LLC_CONN_AC_S_FLAG_SET_1			43
+#define LLC_CONN_AC_START_P_TMR				44
+#define LLC_CONN_AC_START_ACK_TMR			45
+#define LLC_CONN_AC_START_REJ_TMR			46
+#define LLC_CONN_AC_START_ACK_TMR_IF_NOT_RUNNING	47
+#define LLC_CONN_AC_STOP_ACK_TMR			48
+#define LLC_CONN_AC_STOP_P_TMR				49
+#define LLC_CONN_AC_STOP_REJ_TMR			50
+#define LLC_CONN_AC_STOP_ALL_TMRS			51
+#define LLC_CONN_AC_STOP_OTHER_TMRS			52
+#define LLC_CONN_AC_UPDATE_Nr_RECEIVED			53
+#define LLC_CONN_AC_UPDATE_P_FLAG			54
+#define LLC_CONN_AC_DATA_FLAG_SET_2			55
+#define LLC_CONN_AC_DATA_FLAG_SET_0			56
+#define LLC_CONN_AC_DATA_FLAG_SET_1			57
+#define LLC_CONN_AC_DATA_FLAG_SET_1_IF_DATA_FLAG_EQ_0	58
+#define LLC_CONN_AC_P_FLAG_SET_0			59
+#define LLC_CONN_AC_P_FLAG_SET_P			60
+#define LLC_CONN_AC_REMOTE_BUSY_SET_0			61
+#define LLC_CONN_AC_RETRY_CNT_SET_0			62
+#define LLC_CONN_AC_RETRY_CNT_INC_BY_1			63
+#define LLC_CONN_AC_Vr_SET_0				64
+#define LLC_CONN_AC_Vr_INC_BY_1				65
+#define LLC_CONN_AC_Vs_SET_0				66
+#define LLC_CONN_AC_Vs_SET_Nr				67
+#define LLC_CONN_AC_F_FLAG_SET_P			68
+#define LLC_CONN_AC_STOP_SENDACK_TMR			70
+#define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING	71
+
+typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
+
+extern int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ac_conn_confirm(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_data_ind(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_disc_ind(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_rst_ind(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_rst_confirm(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_report_status(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_clear_remote_busy_if_f_eq_1(struct sock* sk,
+						   struct sk_buff *skb);
+extern int llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2(struct sock* sk,
+						      struct sk_buff *skb);
+extern int llc_conn_ac_send_disc_cmd_p_set_x(struct sock* sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ac_send_dm_rsp_f_set_p(struct sock* sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ac_send_dm_rsp_f_set_1(struct sock* sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ac_send_dm_rsp_f_set_f_flag(struct sock* sk,
+						struct sk_buff *skb);
+extern int llc_conn_ac_send_frmr_rsp_f_set_x(struct sock* sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ac_resend_frmr_rsp_f_set_0(struct sock* sk,
+					       struct sk_buff *skb);
+extern int llc_conn_ac_resend_frmr_rsp_f_set_p(struct sock* sk,
+					       struct sk_buff *skb);
+extern int llc_conn_ac_send_i_cmd_p_set_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_send_i_cmd_p_set_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_resend_i_cmd_p_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr(struct sock* sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ac_send_i_xxx_x_set_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_resend_i_xxx_x_set_0(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr(struct sock* sk,
+						       struct sk_buff *skb);
+extern int llc_conn_ac_resend_i_rsp_f_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rej_cmd_p_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rej_rsp_f_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rej_xxx_x_set_0(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rnr_cmd_p_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rnr_rsp_f_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rnr_xxx_x_set_0(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_set_remote_busy(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_opt_send_rnr_xxx_x_set_0(struct sock* sk,
+						struct sk_buff *skb);
+extern int llc_conn_ac_send_rr_cmd_p_set_1(struct sock* sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ac_send_ack_cmd_p_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rr_rsp_f_set_1(struct sock* sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ac_send_ack_rsp_f_set_1(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_rr_xxx_x_set_0(struct sock* sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ac_send_ack_xxx_x_set_0(struct sock* sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ac_send_sabme_cmd_p_set_x(struct sock* sk,
+					      struct sk_buff *skb);
+extern int llc_conn_ac_send_ua_rsp_f_set_f_flag(struct sock* sk,
+						struct sk_buff *skb);
+extern int llc_conn_ac_send_ua_rsp_f_set_p(struct sock* sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ac_set_s_flag_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_s_flag_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_start_p_timer(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_start_ack_timer(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_start_rej_timer(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_start_ack_tmr_if_not_running(struct sock* sk,
+						    struct sk_buff *skb);
+extern int llc_conn_ac_stop_ack_timer(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_stop_p_timer(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_stop_rej_timer(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_stop_all_timers(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_stop_other_timers(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_upd_nr_received(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_inc_tx_win_size(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_dec_tx_win_size(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_upd_p_flag(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_data_flag_2(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_data_flag_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_data_flag_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_data_flag_1_if_data_flag_eq_0(struct sock* sk,
+							 struct sk_buff *skb);
+extern int llc_conn_ac_set_p_flag_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_p_flag_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_remote_busy_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_retry_cnt_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_cause_flag_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_cause_flag_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_inc_retry_cnt_by_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_vr_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_inc_vr_by_1(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_vs_0(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_vs_nr(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_rst_vs(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_upd_vs(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_set_f_flag_p(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_disc(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_reset(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_disc_confirm(struct sock* sk, struct sk_buff *skb);
+extern u8 llc_circular_between(u8 a, u8 b, u8 c);
+extern int llc_conn_ac_send_ack_if_needed(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_inc_npta_value(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_adjust_npta_by_rr(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_adjust_npta_by_rnr(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_rst_sendack_flag(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_send_rr_rsp_f_set_ackpf(struct sock* sk,
+					       struct sk_buff *skb);
+extern int llc_conn_ac_send_i_rsp_f_set_ackpf(struct sock* sk,
+					      struct sk_buff *skb);
+extern int llc_conn_ac_send_i_rsp_as_ack(struct sock* sk, struct sk_buff *skb);
+extern int llc_conn_ac_send_i_as_ack(struct sock* sk, struct sk_buff *skb);
+
+extern void llc_conn_busy_tmr_cb(unsigned long timeout_data);
+extern void llc_conn_pf_cycle_tmr_cb(unsigned long timeout_data);
+extern void llc_conn_ack_tmr_cb(unsigned long timeout_data);
+extern void llc_conn_rej_tmr_cb(unsigned long timeout_data);
+
+extern void llc_conn_set_p_flag(struct sock *sk, u8 value);
+#endif /* LLC_C_AC_H */
diff -Nru a/net/llc/llc_c_ev.c b/net/llc/llc_c_ev.c
--- a/net/llc/llc_c_ev.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_c_ev.c	Sat Nov 15 17:04:10 2003
@@ -33,13 +33,11 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/netdevice.h>
-#include <net/llc_conn.h>
-#include <net/llc_sap.h>
-#include <net/sock.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_pdu.h>
+
+#include "llc_conn.h"
+#include "llc_c_ac.h"
+#include "llc_c_ev.h"
+#include "llc_pdu.h"
 
 #if 0
 #define dprintk(args...) printk(KERN_DEBUG args)
diff -Nru a/net/llc/llc_c_ev.h b/net/llc/llc_c_ev.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_c_ev.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,266 @@
+#ifndef LLC_C_EV_H
+#define LLC_C_EV_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ *		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+
+#include <net/sock.h>
+
+/* Connection component state transition event qualifiers */
+/* Types of events (possible values in 'ev->type') */
+#define LLC_CONN_EV_TYPE_SIMPLE		 1
+#define LLC_CONN_EV_TYPE_CONDITION	 2
+#define LLC_CONN_EV_TYPE_PRIM		 3
+#define LLC_CONN_EV_TYPE_PDU		 4	/* command/response PDU */
+#define LLC_CONN_EV_TYPE_ACK_TMR	 5
+#define LLC_CONN_EV_TYPE_P_TMR		 6
+#define LLC_CONN_EV_TYPE_REJ_TMR	 7
+#define LLC_CONN_EV_TYPE_BUSY_TMR	 8
+#define LLC_CONN_EV_TYPE_RPT_STATUS	 9
+#define LLC_CONN_EV_TYPE_SENDACK_TMR	10
+
+#define NBR_CONN_EV		   5
+/* Connection events which cause state transitions when fully qualified */
+
+#define LLC_CONN_EV_CONN_REQ				 1
+#define LLC_CONN_EV_CONN_RESP				 2
+#define LLC_CONN_EV_DATA_REQ				 3
+#define LLC_CONN_EV_DISC_REQ				 4
+#define LLC_CONN_EV_RESET_REQ				 5
+#define LLC_CONN_EV_RESET_RESP				 6
+#define LLC_CONN_EV_LOCAL_BUSY_DETECTED			 7
+#define LLC_CONN_EV_LOCAL_BUSY_CLEARED			 8
+#define LLC_CONN_EV_RX_BAD_PDU				 9
+#define LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X		10
+#define LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X		11
+#define LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X		12
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X			13
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_UNEXPD_Ns	14
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_INVAL_Ns	15
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X			16
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_UNEXPD_Ns	17
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_INVAL_Ns	18
+#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_X		19
+#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X		20
+#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_X		21
+#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_X		22
+#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_X		23
+#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_X		24
+#define LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X		25
+#define LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X		26
+#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_X		27
+#define LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_X		28
+#define LLC_CONN_EV_RX_XXX_YYY				29
+#define LLC_CONN_EV_RX_ZZZ_CMD_Pbit_SET_X_INVAL_Nr	30
+#define LLC_CONN_EV_RX_ZZZ_RSP_Fbit_SET_X_INVAL_Nr	31
+#define LLC_CONN_EV_P_TMR_EXP				32
+#define LLC_CONN_EV_ACK_TMR_EXP				33
+#define LLC_CONN_EV_REJ_TMR_EXP				34
+#define LLC_CONN_EV_BUSY_TMR_EXP			35
+#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_1		36
+#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_0		37
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns	38
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns	39
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns	40
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns	41
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_0			42
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_0			43
+#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_1			44
+#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0		45
+#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0		46
+#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1		47
+#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1		48
+#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0		49
+#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0		50
+#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1		51
+#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1		52
+#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0		53
+#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0		54
+#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1		55
+#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_1			56
+#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1		57
+#define LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_1		58
+#define LLC_CONN_EV_TX_BUFF_FULL			59
+
+#define LLC_CONN_EV_INIT_P_F_CYCLE			100
+/*
+ * Connection event qualifiers; for some events a certain combination of
+ * these qualifiers must be TRUE before event recognized valid for state;
+ * these constants act as indexes into the Event Qualifier function
+ * table
+ */
+#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_1		 1
+#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_0		 2
+#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_2		 3
+#define LLC_CONN_EV_QFY_P_FLAG_EQ_1		 4
+#define LLC_CONN_EV_QFY_P_FLAG_EQ_0		 5
+#define LLC_CONN_EV_QFY_P_FLAG_EQ_Fbit		 6
+#define LLC_CONN_EV_QFY_REMOTE_BUSY_EQ_0	 7
+#define LLC_CONN_EV_QFY_RETRY_CNT_LT_N2		 8
+#define LLC_CONN_EV_QFY_RETRY_CNT_GTE_N2	 9
+#define LLC_CONN_EV_QFY_S_FLAG_EQ_1		10
+#define LLC_CONN_EV_QFY_S_FLAG_EQ_0		11
+#define LLC_CONN_EV_QFY_INIT_P_F_CYCLE		12
+
+struct llc_conn_state_ev {
+	u8 type;
+	u8 prim;
+	u8 prim_type;
+	u8 reason;
+	u8 status;
+	u8 ind_prim;
+	u8 cfm_prim;
+};
+
+static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
+{
+	return (struct llc_conn_state_ev *)skb->cb;
+}
+
+typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
+typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
+
+extern int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_disc_req(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_rst_req(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_local_busy_detected(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_local_busy_cleared(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_rx_bad_pdu(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_rx_disc_cmd_pbit_set_x(struct sock *sk,
+					      struct sk_buff *skb);
+extern int llc_conn_ev_rx_dm_rsp_fbit_set_x(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_rx_frmr_rsp_fbit_set_x(struct sock *sk,
+					      struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_cmd_pbit_set_x_inval_ns(struct sock *sk,
+						    struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_x(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_x_unexpd_ns(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_x_inval_ns(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_rx_rej_rsp_fbit_set_x(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_sabme_cmd_pbit_set_x(struct sock *sk,
+					       struct sk_buff *skb);
+extern int llc_conn_ev_rx_ua_rsp_fbit_set_x(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_rx_xxx_cmd_pbit_set_x(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_xxx_rsp_fbit_set_x(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_zzz_cmd_pbit_set_x_inval_nr(struct sock *sk,
+						      struct sk_buff *skb);
+extern int llc_conn_ev_rx_zzz_rsp_fbit_set_x_inval_nr(struct sock *sk,
+						      struct sk_buff *skb);
+extern int llc_conn_ev_p_tmr_exp(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_ack_tmr_exp(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_rej_tmr_exp(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_busy_tmr_exp(struct sock *sk, struct sk_buff *skb);
+/* NOT_USED functions and their variations */
+extern int llc_conn_ev_rx_xxx_cmd_pbit_set_1(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_cmd_pbit_set_0(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_cmd_pbit_set_1(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_0(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_rx_i_rsp_fbit_set_1(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_rx_rr_cmd_pbit_set_0(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_rx_rr_cmd_pbit_set_1(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_rx_rr_rsp_fbit_set_0(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_rx_rr_rsp_fbit_set_1(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_rx_rnr_cmd_pbit_set_0(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rnr_cmd_pbit_set_1(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rnr_rsp_fbit_set_0(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rnr_rsp_fbit_set_1(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rej_cmd_pbit_set_0(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rej_cmd_pbit_set_1(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rej_rsp_fbit_set_0(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_rej_rsp_fbit_set_1(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_rx_any_frame(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_tx_buffer_full(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_init_p_f_cycle(struct sock *sk, struct sk_buff *skb);
+
+/* Available connection action qualifiers */
+extern int llc_conn_ev_qlfy_data_flag_eq_1(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_data_flag_eq_0(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_data_flag_eq_2(struct sock *sk,
+					   struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_p_flag_eq_1(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_last_frame_eq_1(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_last_frame_eq_0(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_p_flag_eq_0(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_p_flag_eq_f(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_remote_busy_eq_0(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_remote_busy_eq_1(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_retry_cnt_lt_n2(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_retry_cnt_gte_n2(struct sock *sk,
+					     struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_s_flag_eq_1(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_s_flag_eq_0(struct sock *sk, struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_cause_flag_eq_1(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_cause_flag_eq_0(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_conn(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_disc(struct sock *sk,
+					    struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_failed(struct sock *sk,
+					      struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_remote_busy(struct sock *sk,
+						  struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_refuse(struct sock *sk,
+					      struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_conflict(struct sock *sk,
+						struct sk_buff *skb);
+extern int llc_conn_ev_qlfy_set_status_rst_done(struct sock *sk,
+						struct sk_buff *skb);
+
+static __inline__ int llc_conn_space(struct sock *sk, struct sk_buff *skb)
+{
+	return atomic_read(&sk->sk_rmem_alloc) + skb->truesize <
+	       (unsigned)sk->sk_rcvbuf;
+}
+#endif /* LLC_C_EV_H */
diff -Nru a/net/llc/llc_c_st.c b/net/llc/llc_c_st.c
--- a/net/llc/llc_c_st.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_c_st.c	Sat Nov 15 17:04:10 2003
@@ -14,12 +14,11 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/types.h>
-#include <net/llc_if.h>
-#include <net/llc_sap.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_c_st.h>
+
+#include "llc_if.h"
+#include "llc_c_ev.h"
+#include "llc_c_ac.h"
+#include "llc_c_st.h"
 
 #define NONE NULL
 
diff -Nru a/net/llc/llc_c_st.h b/net/llc/llc_c_st.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_c_st.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,48 @@
+#ifndef LLC_C_ST_H
+#define LLC_C_ST_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ *		2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+/* Connection component state management */
+/* connection states */
+#define LLC_CONN_OUT_OF_SVC		 0	/* prior to allocation */
+ 
+#define LLC_CONN_STATE_ADM		 1	/* disc, initial state */
+#define LLC_CONN_STATE_SETUP		 2	/* disconnected state */
+#define LLC_CONN_STATE_NORMAL		 3	/* connected state */
+#define LLC_CONN_STATE_BUSY		 4	/* connected state */
+#define LLC_CONN_STATE_REJ		 5	/* connected state */
+#define LLC_CONN_STATE_AWAIT		 6	/* connected state */
+#define LLC_CONN_STATE_AWAIT_BUSY	 7	/* connected state */
+#define LLC_CONN_STATE_AWAIT_REJ	 8	/* connected state */
+#define LLC_CONN_STATE_D_CONN		 9	/* disconnected state */
+#define LLC_CONN_STATE_RESET		10	/* disconnected state */
+#define LLC_CONN_STATE_ERROR		11	/* disconnected state */
+#define LLC_CONN_STATE_TEMP		12	/* disconnected state */
+
+#define NBR_CONN_STATES			12	/* size of state table */
+#define NO_STATE_CHANGE			100
+
+/* Connection state table structure */
+struct llc_conn_state_trans {
+	llc_conn_ev_t	   ev;
+	u8		   next_state;
+	llc_conn_ev_qfyr_t *ev_qualifiers;
+	llc_conn_action_t  *ev_actions;
+};
+
+struct llc_conn_state {
+	u8			    current_state;
+	struct llc_conn_state_trans **transitions;
+};
+
+extern struct llc_conn_state llc_conn_state_table[];
+#endif /* LLC_C_ST_H */
diff -Nru a/net/llc/llc_conn.c b/net/llc/llc_conn.c
--- a/net/llc/llc_conn.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_conn.c	Sat Nov 15 17:04:10 2003
@@ -13,14 +13,14 @@
  */
 
 #include <linux/init.h>
-#include <net/llc_sap.h>
-#include <net/llc_conn.h>
-#include <net/sock.h>
 #include <linux/tcp.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_c_st.h>
-#include <net/llc_pdu.h>
+
+#include "llc_conn.h"
+#include "llc_c_ev.h"
+#include "llc_c_ac.h"
+#include "llc_c_st.h"
+#include "llc_pdu.h"
+#include "llc_sap.h"
 
 #if 0
 #define dprintk(args...) printk(KERN_DEBUG args)
diff -Nru a/net/llc/llc_conn.h b/net/llc/llc_conn.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_conn.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,117 @@
+#ifndef LLC_CONN_H
+#define LLC_CONN_H
+/*
+ * Copyright (c) 1997 by Procom Technology, Inc.
+ * 		 2001, 2002 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+#include <linux/timer.h>
+#include "llc_if.h"
+#include <linux/llc.h>
+
+#define LLC_EVENT                1
+#define LLC_PACKET               2
+
+#define LLC_P_TIME               2
+#define LLC_ACK_TIME             1
+#define LLC_REJ_TIME             3
+#define LLC_BUSY_TIME            3
+
+struct llc_timer {
+	struct timer_list timer;
+	u16		  expire;	/* timer expire time */
+};
+
+struct llc_opt {
+	struct sock	    *sk;		/* sock that has this llc_opt */
+	struct sockaddr_llc addr;		/* address sock is bound to */
+	u8		    state;		/* state of connection */
+	struct llc_sap	    *sap;		/* pointer to parent SAP */
+	struct llc_addr	    laddr;		/* lsap/mac pair */
+	struct llc_addr	    daddr;		/* dsap/mac pair */
+	struct net_device   *dev;		/* device to send to remote */
+	u8		    retry_count;	/* number of retries */
+	u8		    ack_must_be_send;
+	u8		    first_pdu_Ns;
+	u8		    npta;
+	struct llc_timer    ack_timer;
+	struct llc_timer    pf_cycle_timer;
+	struct llc_timer    rej_sent_timer;
+	struct llc_timer    busy_state_timer;	/* ind busy clr at remote LLC */
+	u8		    vS;			/* seq# next in-seq I-PDU tx'd*/
+	u8		    vR;			/* seq# next in-seq I-PDU rx'd*/
+	u32		    n2;			/* max nbr re-tx's for timeout*/
+	u32		    n1;			/* max nbr octets in I PDU */
+	u8		    k;			/* tx window size; max = 127 */
+	u8		    rw;			/* rx window size; max = 127 */
+	u8		    p_flag;		/* state flags */
+	u8		    f_flag;
+	u8		    s_flag;
+	u8		    data_flag;
+	u8		    remote_busy_flag;
+	u8		    cause_flag;
+	struct sk_buff_head pdu_unack_q;	/* PUDs sent/waiting ack */
+	u16		    link;		/* network layer link number */
+	u8		    X;			/* a temporary variable */
+	u8		    ack_pf;		/* this flag indicates what is
+						   the P-bit of acknowledge */
+	u8		    failed_data_req; /* recognize that already exist a
+						failed llc_data_req_handler
+						(tx_buffer_full or unacceptable
+						state */
+	u8		    dec_step;
+	u8		    inc_cntr;
+	u8		    dec_cntr;
+	u8		    connect_step;
+	u8		    last_nr;	   /* NR of last pdu received */
+	u32		    rx_pdu_hdr;	   /* used for saving header of last pdu
+					      received and caused sending FRMR.
+					      Used for resending FRMR */
+};
+
+#define llc_sk(__sk) ((struct llc_opt *)(__sk)->sk_protinfo)
+
+static __inline__ void llc_set_backlog_type(struct sk_buff *skb, char type)
+{
+	skb->cb[sizeof(skb->cb) - 1] = type;
+}
+
+static __inline__ char llc_backlog_type(struct sk_buff *skb)
+{
+	return skb->cb[sizeof(skb->cb) - 1];
+}
+
+extern struct sock *llc_sk_alloc(int family, int priority);
+extern void llc_sk_free(struct sock *sk);
+
+extern void llc_sk_reset(struct sock *sk);
+extern int llc_sk_init(struct sock *sk);
+
+/* Access to a connection */
+extern int llc_conn_state_process(struct sock *sk, struct sk_buff *skb);
+extern void llc_conn_send_pdu(struct sock *sk, struct sk_buff *skb);
+extern void llc_conn_rtn_pdu(struct sock *sk, struct sk_buff *skb);
+extern void llc_conn_resend_i_pdu_as_cmd(struct sock *sk, u8 nr,
+					 u8 first_p_bit);
+extern void llc_conn_resend_i_pdu_as_rsp(struct sock *sk, u8 nr,
+					 u8 first_f_bit);
+extern int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr,
+				      u16 *how_many_unacked);
+extern struct sock *llc_lookup_established(struct llc_sap *sap,
+					   struct llc_addr *daddr,
+					   struct llc_addr *laddr);
+extern struct sock *llc_lookup_listener(struct llc_sap *sap,
+					struct llc_addr *laddr);
+extern void llc_sap_add_socket(struct llc_sap *sap, struct sock *sk);
+extern void llc_sap_remove_socket(struct llc_sap *sap, struct sock *sk);
+
+extern u8 llc_data_accept_state(u8 state);
+extern void llc_build_offset_table(void);
+extern int llc_release_sockets(struct llc_sap *sap);
+#endif /* LLC_CONN_H */
diff -Nru a/net/llc/llc_if.c b/net/llc/llc_if.c
--- a/net/llc/llc_if.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_if.c	Sat Nov 15 17:04:10 2003
@@ -11,20 +11,13 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/config.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/netdevice.h>
+
 #include <linux/tcp.h>
-#include <asm/errno.h>
-#include <net/llc_if.h>
-#include <net/llc_sap.h>
-#include <net/llc_s_ev.h>
-#include <net/llc_conn.h>
-#include <net/sock.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_c_st.h>
+
+#include "llc_conn.h"
+#include "llc_c_ev.h"
+#include "llc_c_ac.h"
+#include "llc_c_st.h"
 
 u8 llc_mac_null_var[IFHWADDRLEN];
 
diff -Nru a/net/llc/llc_if.h b/net/llc/llc_if.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_if.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,101 @@
+#ifndef LLC_IF_H
+#define LLC_IF_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+/* Defines LLC interface to network layer */
+/* Available primitives */
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#include <linux/llc.h>
+#include <net/llc.h>
+
+#define LLC_DATAUNIT_PRIM	1
+#define LLC_CONN_PRIM		2
+#define LLC_DATA_PRIM		3
+#define LLC_DISC_PRIM		4
+#define LLC_RESET_PRIM		5
+#define LLC_FLOWCONTROL_PRIM	6 /* Not supported at this time */
+#define LLC_DISABLE_PRIM	7
+#define LLC_XID_PRIM		8
+#define LLC_TEST_PRIM		9
+#define LLC_SAP_ACTIVATION     10
+#define LLC_SAP_DEACTIVATION   11
+
+#define LLC_NBR_PRIMITIVES     11
+
+#define LLC_IND			1
+#define LLC_CONFIRM		2
+
+/* Primitive type */
+#define LLC_PRIM_TYPE_REQ	1
+#define LLC_PRIM_TYPE_IND	2
+#define LLC_PRIM_TYPE_RESP	3
+#define LLC_PRIM_TYPE_CONFIRM	4
+
+/* Reset reasons, remote entity or local LLC */
+#define LLC_RESET_REASON_REMOTE	1
+#define LLC_RESET_REASON_LOCAL	2
+
+/* Disconnect reasons */
+#define LLC_DISC_REASON_RX_DM_RSP_PDU	0
+#define LLC_DISC_REASON_RX_DISC_CMD_PDU	1
+#define LLC_DISC_REASON_ACK_TMR_EXP	2
+
+/* Confirm reasons */
+#define LLC_STATUS_CONN		0 /* connect confirm & reset confirm */
+#define LLC_STATUS_DISC		1 /* connect confirm & reset confirm */
+#define LLC_STATUS_FAILED	2 /* connect confirm & reset confirm */
+#define LLC_STATUS_IMPOSSIBLE	3 /* connect confirm */
+#define LLC_STATUS_RECEIVED	4 /* data conn */
+#define LLC_STATUS_REMOTE_BUSY	5 /* data conn */
+#define LLC_STATUS_REFUSE	6 /* data conn */
+#define LLC_STATUS_CONFLICT	7 /* disconnect conn */
+#define LLC_STATUS_RESET_DONE	8 /*  */
+
+extern u8 llc_mac_null_var[IFHWADDRLEN];
+
+/**
+ *      llc_mac_null - determines if a address is a null mac address
+ *      @mac: Mac address to test if null.
+ *
+ *      Determines if a given address is a null mac address.  Returns 0 if the
+ *      address is not a null mac, 1 if the address is a null mac.
+ */
+static __inline__ int llc_mac_null(u8 *mac)
+{
+	return !memcmp(mac, llc_mac_null_var, IFHWADDRLEN);
+}
+
+static __inline__ int llc_addrany(struct llc_addr *addr)
+{
+	return llc_mac_null(addr->mac) && !addr->lsap;
+}
+
+/**
+ *	llc_mac_match - determines if two mac addresses are the same
+ *	@mac1: First mac address to compare.
+ *	@mac2: Second mac address to compare.
+ *
+ *	Determines if two given mac address are the same.  Returns 0 if there
+ *	is not a complete match up to len, 1 if a complete match up to len is
+ *	found.
+ */
+static __inline__ int llc_mac_match(u8 *mac1, u8 *mac2)
+{
+	return !memcmp(mac1, mac2, IFHWADDRLEN);
+}
+
+extern int llc_establish_connection(struct sock *sk, u8 *lmac,
+				    u8 *dmac, u8 dsap);
+extern int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb);
+extern int llc_send_disc(struct sock *sk);
+#endif /* LLC_IF_H */
diff -Nru a/net/llc/llc_input.c b/net/llc/llc_input.c
--- a/net/llc/llc_input.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_input.c	Sat Nov 15 17:04:10 2003
@@ -13,8 +13,7 @@
  */
 #include <linux/netdevice.h>
 #include <net/llc.h>
-#include <net/llc_pdu.h>
-#include <net/llc_sap.h>
+#include "llc_pdu.h"
 
 #if 0
 #define dprintk(args...) printk(KERN_DEBUG args)
diff -Nru a/net/llc/llc_output.c b/net/llc/llc_output.c
--- a/net/llc/llc_output.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_output.c	Sat Nov 15 17:04:10 2003
@@ -19,7 +19,7 @@
 #include <linux/trdevice.h>
 #include <linux/skbuff.h>
 #include <net/llc.h>
-#include <net/llc_pdu.h>
+#include "llc_pdu.h"
 
 /**
  *	llc_mac_hdr_init - fills MAC header fields
diff -Nru a/net/llc/llc_pdu.c b/net/llc/llc_pdu.c
--- a/net/llc/llc_pdu.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_pdu.c	Sat Nov 15 17:04:10 2003
@@ -12,8 +12,8 @@
  * See the GNU General Public License for more details.
  */
 
-#include <linux/netdevice.h>
-#include <net/llc_pdu.h>
+#include <linux/skbuff.h>
+#include "llc_pdu.h"
 
 static void llc_pdu_decode_pdu_type(struct sk_buff *skb, u8 *type);
 static u8 llc_pdu_get_pf_bit(struct llc_pdu_sn *pdu);
diff -Nru a/net/llc/llc_pdu.h b/net/llc/llc_pdu.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_pdu.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,437 @@
+#ifndef LLC_PDU_H
+#define LLC_PDU_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+
+#include <linux/if_ether.h>
+#include <linux/if_tr.h>
+
+/* Lengths of frame formats */
+#define LLC_PDU_LEN_I	4       /* header and 2 control bytes */
+#define LLC_PDU_LEN_S	4
+#define LLC_PDU_LEN_U	3       /* header and 1 control byte */
+/* Known SAP addresses */
+#define LLC_GLOBAL_SAP	0xFF
+#define LLC_NULL_SAP	0x00	/* not network-layer visible */
+#define LLC_MGMT_INDIV	0x02	/* station LLC mgmt indiv addr */
+#define LLC_MGMT_GRP	0x03	/* station LLC mgmt group addr */
+#define LLC_RDE_SAP	0xA6	/* route ... */
+
+/* SAP field bit masks */
+#define LLC_ISO_RESERVED_SAP	0x02
+#define LLC_SAP_GROUP_DSAP	0x01
+#define LLC_SAP_RESP_SSAP	0x01
+
+/* Group/individual DSAP indicator is DSAP field */
+#define LLC_PDU_GROUP_DSAP_MASK    0x01
+#define LLC_PDU_IS_GROUP_DSAP(pdu)      \
+	((pdu->dsap & LLC_PDU_GROUP_DSAP_MASK) ? 0 : 1)
+#define LLC_PDU_IS_INDIV_DSAP(pdu)      \
+	(!(pdu->dsap & LLC_PDU_GROUP_DSAP_MASK) ? 0 : 1)
+
+/* Command/response PDU indicator in SSAP field */
+#define LLC_PDU_CMD_RSP_MASK	0x01
+#define LLC_PDU_CMD		0
+#define LLC_PDU_RSP		1
+#define LLC_PDU_IS_CMD(pdu)    ((pdu->ssap & LLC_PDU_RSP) ? 0 : 1)
+#define LLC_PDU_IS_RSP(pdu)    ((pdu->ssap & LLC_PDU_RSP) ? 1 : 0)
+
+/* Get PDU type from 2 lowest-order bits of control field first byte */
+#define LLC_PDU_TYPE_I_MASK    0x01	/* 16-bit control field */
+#define LLC_PDU_TYPE_S_MASK    0x03
+#define LLC_PDU_TYPE_U_MASK    0x03	/* 8-bit control field */
+#define LLC_PDU_TYPE_MASK      0x03
+
+#define LLC_PDU_TYPE_I	0	/* first bit */
+#define LLC_PDU_TYPE_S	1	/* first two bits */
+#define LLC_PDU_TYPE_U	3	/* first two bits */
+
+#define LLC_PDU_TYPE_IS_I(pdu) \
+	((!(pdu->ctrl_1 & LLC_PDU_TYPE_I_MASK)) ? 1 : 0)
+
+#define LLC_PDU_TYPE_IS_U(pdu) \
+	(((pdu->ctrl_1 & LLC_PDU_TYPE_U_MASK) == LLC_PDU_TYPE_U) ? 1 : 0)
+
+#define LLC_PDU_TYPE_IS_S(pdu) \
+	(((pdu->ctrl_1 & LLC_PDU_TYPE_S_MASK) == LLC_PDU_TYPE_S) ? 1 : 0)
+
+/* U-format PDU control field masks */
+#define LLC_U_PF_BIT_MASK      0x10	/* P/F bit mask */
+#define LLC_U_PF_IS_1(pdu)     ((pdu->ctrl_1 & LLC_U_PF_BIT_MASK) ? 1 : 0)
+#define LLC_U_PF_IS_0(pdu)     ((!(pdu->ctrl_1 & LLC_U_PF_BIT_MASK)) ? 1 : 0)
+
+#define LLC_U_PDU_CMD_MASK     0xEC	/* cmd/rsp mask */
+#define LLC_U_PDU_CMD(pdu)     (pdu->ctrl_1 & LLC_U_PDU_CMD_MASK)
+#define LLC_U_PDU_RSP(pdu)     (pdu->ctrl_1 & LLC_U_PDU_CMD_MASK)
+
+#define LLC_1_PDU_CMD_UI       0x00	/* Type 1 cmds/rsps */
+#define LLC_1_PDU_CMD_XID      0xAC
+#define LLC_1_PDU_CMD_TEST     0xE0
+
+#define LLC_2_PDU_CMD_SABME    0x6C	/* Type 2 cmds/rsps */
+#define LLC_2_PDU_CMD_DISC     0x40
+#define LLC_2_PDU_RSP_UA       0x60
+#define LLC_2_PDU_RSP_DM       0x0C
+#define LLC_2_PDU_RSP_FRMR     0x84
+
+/* Type 1 operations */
+
+/* XID information field bit masks */
+
+/* LLC format identifier (byte 1) */
+#define LLC_XID_FMT_ID		0x81	/* first byte must be this */
+
+/* LLC types/classes identifier (byte 2) */
+#define LLC_XID_CLASS_ZEROS_MASK	0xE0	/* these must be zeros */
+#define LLC_XID_CLASS_MASK		0x1F	/* AND with byte to get below */
+
+#define LLC_XID_NULL_CLASS_1	0x01	/* if NULL LSAP...use these */
+#define LLC_XID_NULL_CLASS_2	0x03
+#define LLC_XID_NULL_CLASS_3	0x05
+#define LLC_XID_NULL_CLASS_4	0x07
+
+#define LLC_XID_NNULL_TYPE_1	0x01	/* if non-NULL LSAP...use these */
+#define LLC_XID_NNULL_TYPE_2	0x02
+#define LLC_XID_NNULL_TYPE_3	0x04
+#define LLC_XID_NNULL_TYPE_1_2	0x03
+#define LLC_XID_NNULL_TYPE_1_3	0x05
+#define LLC_XID_NNULL_TYPE_2_3	0x06
+#define LLC_XID_NNULL_ALL		0x07
+
+/* Sender Receive Window (byte 3) */
+#define LLC_XID_RW_MASK	0xFE	/* AND with value to get below */
+
+#define LLC_XID_MIN_RW	0x02	/* lowest-order bit always zero */
+
+/* Type 2 operations */
+
+#define LLC_2_SEQ_NBR_MODULO   ((u8) 128)
+
+/* I-PDU masks ('ctrl' is I-PDU control word) */
+#define LLC_I_GET_NS(pdu)     (u8)((pdu->ctrl_1 & 0xFE) >> 1)
+#define LLC_I_GET_NR(pdu)     (u8)((pdu->ctrl_2 & 0xFE) >> 1)
+
+#define LLC_I_PF_BIT_MASK      0x01
+
+#define LLC_I_PF_IS_0(pdu)     ((!(pdu->ctrl_2 & LLC_I_PF_BIT_MASK)) ? 1 : 0)
+#define LLC_I_PF_IS_1(pdu)     ((pdu->ctrl_2 & LLC_I_PF_BIT_MASK) ? 1 : 0)
+
+/* S-PDU supervisory commands and responses */
+
+#define LLC_S_PDU_CMD_MASK     0x0C
+#define LLC_S_PDU_CMD(pdu)     (pdu->ctrl_1 & LLC_S_PDU_CMD_MASK)
+#define LLC_S_PDU_RSP(pdu)     (pdu->ctrl_1 & LLC_S_PDU_CMD_MASK)
+
+#define LLC_2_PDU_CMD_RR       0x00	/* rx ready cmd */
+#define LLC_2_PDU_RSP_RR       0x00	/* rx ready rsp */
+#define LLC_2_PDU_CMD_REJ      0x08	/* reject PDU cmd */
+#define LLC_2_PDU_RSP_REJ      0x08	/* reject PDU rsp */
+#define LLC_2_PDU_CMD_RNR      0x04	/* rx not ready cmd */
+#define LLC_2_PDU_RSP_RNR      0x04	/* rx not ready rsp */
+
+#define LLC_S_PF_BIT_MASK      0x01
+#define LLC_S_PF_IS_0(pdu)     ((!(pdu->ctrl_2 & LLC_S_PF_BIT_MASK)) ? 1 : 0)
+#define LLC_S_PF_IS_1(pdu)     ((pdu->ctrl_2 & LLC_S_PF_BIT_MASK) ? 1 : 0)
+
+#define PDU_SUPV_GET_Nr(pdu)   ((pdu->ctrl_2 & 0xFE) >> 1)
+#define PDU_GET_NEXT_Vr(sn)    (++sn & ~LLC_2_SEQ_NBR_MODULO)
+
+/* FRMR information field macros */
+
+#define FRMR_INFO_LENGTH       5	/* 5 bytes of information */
+
+/*
+ * info is pointer to FRMR info field structure; 'rej_ctrl' is byte pointer
+ * (if U-PDU) or word pointer to rejected PDU control field
+ */
+#define FRMR_INFO_SET_REJ_CNTRL(info,rej_ctrl) \
+	info->rej_pdu_ctrl = ((*((u8 *) rej_ctrl) & \
+				LLC_PDU_TYPE_U) != LLC_PDU_TYPE_U ? \
+				(u16)*((u16 *) rej_ctrl) : \
+				(((u16) *((u8 *) rej_ctrl)) & 0x00FF))
+
+/*
+ * Info is pointer to FRMR info field structure; 'vs' is a byte containing
+ * send state variable value in low-order 7 bits (insure the lowest-order
+ * bit remains zero (0))
+ */
+#define FRMR_INFO_SET_Vs(info,vs) (info->curr_ssv = (((u8) vs) << 1))
+#define FRMR_INFO_SET_Vr(info,vr) (info->curr_rsv = (((u8) vr) << 1))
+
+/*
+ * Info is pointer to FRMR info field structure; 'cr' is a byte containing
+ * the C/R bit value in the low-order bit
+ */
+#define FRMR_INFO_SET_C_R_BIT(info, cr)  (info->curr_rsv |= (((u8) cr) & 0x01))
+
+/*
+ * In the remaining five macros, 'info' is pointer to FRMR info field
+ * structure; 'ind' is a byte containing the bit value to set in the
+ * lowest-order bit)
+ */
+#define FRMR_INFO_SET_INVALID_PDU_CTRL_IND(info, ind) \
+       (info->ind_bits = ((info->ind_bits & 0xFE) | (((u8) ind) & 0x01)))
+
+#define FRMR_INFO_SET_INVALID_PDU_INFO_IND(info, ind) \
+       (info->ind_bits = ( (info->ind_bits & 0xFD) | (((u8) ind) & 0x02)))
+
+#define FRMR_INFO_SET_PDU_INFO_2LONG_IND(info, ind) \
+       (info->ind_bits = ( (info->ind_bits & 0xFB) | (((u8) ind) & 0x04)))
+
+#define FRMR_INFO_SET_PDU_INVALID_Nr_IND(info, ind) \
+       (info->ind_bits = ( (info->ind_bits & 0xF7) | (((u8) ind) & 0x08)))
+
+#define FRMR_INFO_SET_PDU_INVALID_Ns_IND(info, ind) \
+       (info->ind_bits = ( (info->ind_bits & 0xEF) | (((u8) ind) & 0x10)))
+
+/* Sequence-numbered PDU format (4 bytes in length) */
+struct llc_pdu_sn {
+	u8 dsap;
+	u8 ssap;
+	u8 ctrl_1;
+	u8 ctrl_2;
+};
+
+static inline struct llc_pdu_sn *llc_pdu_sn_hdr(struct sk_buff *skb)
+{
+	return (struct llc_pdu_sn *)skb->nh.raw;
+}
+
+/* Un-numbered PDU format (3 bytes in length) */
+struct llc_pdu_un {
+	u8 dsap;
+	u8 ssap;
+	u8 ctrl_1;
+};
+
+static inline struct llc_pdu_un *llc_pdu_un_hdr(struct sk_buff *skb)
+{
+	return (struct llc_pdu_un *)skb->nh.raw;
+}
+
+static inline void *llc_set_pdu_hdr(struct sk_buff *skb, void *ptr)
+{
+	return skb->nh.raw = ptr;
+}
+
+/**
+ *	llc_pdu_header_init - initializes pdu header
+ *	@skb: input skb that header must be set into it.
+ *	@type: type of PDU (U, I or S).
+ *	@ssap: source sap.
+ *	@dsap: destination sap.
+ *	@cr: command/response bit (0 or 1).
+ *
+ *	This function sets DSAP, SSAP and command/Response bit in LLC header.
+ */
+static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
+				       u8 ssap, u8 dsap, u8 cr)
+{
+	const int hlen = type == LLC_PDU_TYPE_U ? 3 : 4;
+	struct llc_pdu_un *pdu = llc_set_pdu_hdr(skb, skb_push(skb, hlen));
+	pdu->dsap = dsap;
+	pdu->ssap = ssap;
+	pdu->ssap |= cr;
+}
+
+/**
+ *	llc_pdu_decode_sa - extracs source address (MAC) of input frame
+ *	@skb: input skb that source address must be extracted from it.
+ *	@sa: pointer to source address (6 byte array).
+ *
+ *	This function extracts source address(MAC) of input frame.
+ */
+static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
+{
+	if (skb->protocol == ntohs(ETH_P_802_2))
+		memcpy(sa, ((struct ethhdr *)skb->mac.raw)->h_source, ETH_ALEN);
+	else if (skb->protocol == ntohs(ETH_P_TR_802_2))
+		memcpy(sa, ((struct trh_hdr *)skb->mac.raw)->saddr, ETH_ALEN);
+}
+
+/**
+ *	llc_pdu_decode_da - extracts dest address of input frame
+ *	@skb: input skb that destination address must be extracted from it
+ *	@sa: pointer to destination address (6 byte array).
+ *
+ *	This function extracts destination address(MAC) of input frame.
+ */
+static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
+{
+	if (skb->protocol == ntohs(ETH_P_802_2))
+		memcpy(da, ((struct ethhdr *)skb->mac.raw)->h_dest, ETH_ALEN);
+	else if (skb->protocol == ntohs(ETH_P_TR_802_2))
+		memcpy(da, ((struct trh_hdr *)skb->mac.raw)->daddr, ETH_ALEN);
+}
+
+/**
+ *	llc_pdu_decode_ssap - extracts source SAP of input frame
+ *	@skb: input skb that source SAP must be extracted from it.
+ *	@ssap: source SAP (output argument).
+ *
+ *	This function extracts source SAP of input frame. Right bit of SSAP is
+ *	command/response bit.
+ */
+static inline void llc_pdu_decode_ssap(struct sk_buff *skb, u8 *ssap)
+{
+	*ssap = llc_pdu_un_hdr(skb)->ssap & 0xFE;
+}
+
+/**
+ *	llc_pdu_decode_dsap - extracts dest SAP of input frame
+ *	@skb: input skb that destination SAP must be extracted from it.
+ *	@dsap: destination SAP (output argument).
+ *
+ *	This function extracts destination SAP of input frame. right bit of
+ *	DSAP designates individual/group SAP.
+ */
+static inline void llc_pdu_decode_dsap(struct sk_buff *skb, u8 *dsap)
+{
+	*dsap = llc_pdu_un_hdr(skb)->dsap & 0xFE;
+}
+
+/**
+ *	llc_pdu_init_as_ui_cmd - sets LLC header as UI PDU
+ *	@skb: input skb that header must be set into it.
+ *
+ *	This function sets third byte of LLC header as a UI PDU.
+ */
+static inline void llc_pdu_init_as_ui_cmd(struct sk_buff *skb)
+{
+	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
+
+	pdu->ctrl_1  = LLC_PDU_TYPE_U;
+	pdu->ctrl_1 |= LLC_1_PDU_CMD_UI;
+}
+
+/**
+ *	llc_pdu_init_as_test_cmd - sets PDU as TEST
+ *	@skb - Address of the skb to build
+ *
+ * 	Sets a PDU as TEST
+ */
+static inline void llc_pdu_init_as_test_cmd(struct sk_buff *skb)
+{
+	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
+
+	pdu->ctrl_1  = LLC_PDU_TYPE_U;
+	pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
+	pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
+}
+
+/**
+ *	llc_pdu_init_as_test_rsp - build TEST response PDU
+ *	@skb: Address of the skb to build
+ *	@ev_skb: The received TEST command PDU frame
+ *
+ *	Builds a pdu frame as a TEST response.
+ */
+static inline void llc_pdu_init_as_test_rsp(struct sk_buff *skb,
+					    struct sk_buff *ev_skb)
+{
+	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
+
+	pdu->ctrl_1  = LLC_PDU_TYPE_U;
+	pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
+	pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
+	if (ev_skb->protocol == ntohs(ETH_P_802_2)) {
+		struct llc_pdu_un *ev_pdu = llc_pdu_un_hdr(ev_skb);
+		int dsize;
+
+		dsize = ntohs(((struct ethhdr *)ev_skb->mac.raw)->h_proto) - 3;
+		memcpy(((u8 *)pdu) + 3, ((u8 *)ev_pdu) + 3, dsize);
+		skb_put(skb, dsize);
+	}
+}
+
+/* LLC Type 1 XID command/response information fields format */
+struct llc_xid_info {
+	u8 fmt_id;	/* always 0x18 for LLC */
+	u8 type;	/* different if NULL/non-NULL LSAP */
+	u8 rw;		/* sender receive window */
+};
+
+/**
+ *	llc_pdu_init_as_xid_cmd - sets bytes 3, 4 & 5 of LLC header as XID
+ *	@skb: input skb that header must be set into it.
+ *
+ *	This function sets third,fourth,fifth and sixth bytes of LLC header as
+ *	a XID PDU.
+ */
+static inline void llc_pdu_init_as_xid_cmd(struct sk_buff *skb,
+					   u8 svcs_supported, u8 rx_window)
+{
+	struct llc_xid_info *xid_info;
+	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
+
+	pdu->ctrl_1	 = LLC_PDU_TYPE_U;
+	pdu->ctrl_1	|= LLC_1_PDU_CMD_XID;
+	pdu->ctrl_1	|= LLC_U_PF_BIT_MASK;
+	xid_info	 = (struct llc_xid_info *)(((u8 *)&pdu->ctrl_1) + 1);
+	xid_info->fmt_id = LLC_XID_FMT_ID;	/* 0x81 */
+	xid_info->type	 = svcs_supported;
+	xid_info->rw	 = rx_window << 1;	/* size of receive window */
+	skb_put(skb, 3);
+}
+
+/**
+ *	llc_pdu_init_as_xid_rsp - builds XID response PDU
+ *	@skb: Address of the skb to build
+ *	@svcs_supported: The class of the LLC (I or II)
+ *	@rx_window: The size of the receive window of the LLC
+ *
+ *	Builds a pdu frame as an XID response.
+ */
+static inline void llc_pdu_init_as_xid_rsp(struct sk_buff *skb,
+					   u8 svcs_supported, u8 rx_window)
+{
+	struct llc_xid_info *xid_info;
+	struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
+
+	pdu->ctrl_1	 = LLC_PDU_TYPE_U;
+	pdu->ctrl_1	|= LLC_1_PDU_CMD_XID;
+	pdu->ctrl_1	|= LLC_U_PF_BIT_MASK;
+
+	xid_info	 = (struct llc_xid_info *)(((u8 *)&pdu->ctrl_1) + 1);
+	xid_info->fmt_id = LLC_XID_FMT_ID;
+	xid_info->type	 = svcs_supported;
+	xid_info->rw	 = rx_window << 1;
+	skb_put(skb, 3);
+}
+
+/* LLC Type 2 FRMR response information field format */
+struct llc_frmr_info {
+	u16 rej_pdu_ctrl;	/* bits 1-8 if U-PDU */
+	u8  curr_ssv;		/* current send state variable val */
+	u8  curr_rsv;		/* current receive state variable */
+	u8  ind_bits;		/* indicator bits set with macro */
+};
+
+extern void llc_pdu_set_cmd_rsp(struct sk_buff *skb, u8 type);
+extern void llc_pdu_set_pf_bit(struct sk_buff *skb, u8 bit_value);
+extern void llc_pdu_decode_pf_bit(struct sk_buff *skb, u8 *pf_bit);
+extern void llc_pdu_decode_cr_bit(struct sk_buff *skb, u8 *cr_bit);
+extern void llc_pdu_init_as_disc_cmd(struct sk_buff *skb, u8 p_bit);
+extern void llc_pdu_init_as_i_cmd(struct sk_buff *skb, u8 p_bit, u8 ns, u8 nr);
+extern void llc_pdu_init_as_rej_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
+extern void llc_pdu_init_as_rnr_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
+extern void llc_pdu_init_as_rr_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
+extern void llc_pdu_init_as_sabme_cmd(struct sk_buff *skb, u8 p_bit);
+extern void llc_pdu_init_as_dm_rsp(struct sk_buff *skb, u8 f_bit);
+extern void llc_pdu_init_as_frmr_rsp(struct sk_buff *skb,
+				     struct llc_pdu_sn *prev_pdu,
+				     u8 f_bit, u8 vs, u8 vr, u8 vzyxw);
+extern void llc_pdu_init_as_rr_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
+extern void llc_pdu_init_as_rej_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
+extern void llc_pdu_init_as_rnr_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
+extern void llc_pdu_init_as_ua_rsp(struct sk_buff *skb, u8 f_bit);
+#endif /* LLC_PDU_H */
diff -Nru a/net/llc/llc_proc.c b/net/llc/llc_proc.c
--- a/net/llc/llc_proc.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_proc.c	Sat Nov 15 17:04:10 2003
@@ -19,11 +19,10 @@
 #include <linux/errno.h>
 #include <linux/seq_file.h>
 #include <net/sock.h>
-#include <net/llc.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_c_st.h>
-#include <net/llc_conn.h>
+#include "llc_c_ac.h"
+#include "llc_c_ev.h"
+#include "llc_c_st.h"
+#include "llc_conn.h"
 
 static void llc_ui_format_mac(struct seq_file *seq, unsigned char *mac)
 {
diff -Nru a/net/llc/llc_s_ac.c b/net/llc/llc_s_ac.c
--- a/net/llc/llc_s_ac.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_s_ac.c	Sat Nov 15 17:04:10 2003
@@ -19,12 +19,14 @@
  */
 
 #include <linux/netdevice.h>
+#include <linux/skbuff.h>
+
 #include <net/llc.h>
-#include <net/llc_pdu.h>
-#include <net/llc_s_ac.h>
-#include <net/llc_s_ev.h>
-#include <net/llc_sap.h>
-#include "llc_output.h"
+
+#include "llc_pdu.h"
+#include "llc_s_ac.h"
+#include "llc_s_ev.h"
+#include "llc_sap.h"
 
 /**
  *	llc_sap_action_unit_data_ind - forward UI PDU to network layer
diff -Nru a/net/llc/llc_s_ac.h b/net/llc/llc_s_ac.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_s_ac.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,39 @@
+#ifndef LLC_S_AC_H
+#define LLC_S_AC_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+/* SAP component actions */
+#define SAP_ACT_UNITDATA_IND	1
+#define SAP_ACT_SEND_UI		2
+#define SAP_ACT_SEND_XID_C	3
+#define SAP_ACT_SEND_XID_R	4
+#define SAP_ACT_SEND_TEST_C	5
+#define SAP_ACT_SEND_TEST_R	6
+#define SAP_ACT_REPORT_STATUS	7
+#define SAP_ACT_XID_IND		8
+#define SAP_ACT_TEST_IND	9
+
+/* All action functions must look like this */
+typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
+
+extern int llc_sap_action_unitdata_ind(struct llc_sap *sap,
+				       struct sk_buff *skb);
+extern int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_action_send_xid_c(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_action_send_xid_r(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_action_send_test_c(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_action_send_test_r(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_action_report_status(struct llc_sap *sap,
+					struct sk_buff *skb);
+extern int llc_sap_action_xid_ind(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_action_test_ind(struct llc_sap *sap, struct sk_buff *skb);
+#endif /* LLC_S_AC_H */
diff -Nru a/net/llc/llc_s_ev.c b/net/llc/llc_s_ev.c
--- a/net/llc/llc_s_ev.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_s_ev.c	Sat Nov 15 17:04:10 2003
@@ -14,11 +14,12 @@
  *
  * See the GNU General Public License for more details.
  */
+
 #include <linux/socket.h>
 #include <net/sock.h>
-#include <net/llc_if.h>
-#include <net/llc_s_ev.h>
-#include <net/llc_pdu.h>
+#include "llc_if.h"
+#include "llc_s_ev.h"
+#include "llc_pdu.h"
 
 int llc_sap_ev_activation_req(struct llc_sap *sap, struct sk_buff *skb)
 {
diff -Nru a/net/llc/llc_s_ev.h b/net/llc/llc_s_ev.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_s_ev.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,67 @@
+#ifndef LLC_S_EV_H
+#define LLC_S_EV_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+
+#include <linux/skbuff.h>
+
+/* Defines SAP component events */
+/* Types of events (possible values in 'ev->type') */
+#define LLC_SAP_EV_TYPE_SIMPLE		1
+#define LLC_SAP_EV_TYPE_CONDITION	2
+#define LLC_SAP_EV_TYPE_PRIM		3
+#define LLC_SAP_EV_TYPE_PDU		4   /* command/response PDU */
+#define LLC_SAP_EV_TYPE_ACK_TMR		5
+#define LLC_SAP_EV_TYPE_RPT_STATUS	6
+
+#define LLC_SAP_EV_ACTIVATION_REQ	 1
+#define LLC_SAP_EV_RX_UI		 2
+#define LLC_SAP_EV_UNITDATA_REQ		 3
+#define LLC_SAP_EV_XID_REQ		 4
+#define LLC_SAP_EV_RX_XID_C		 5
+#define LLC_SAP_EV_RX_XID_R		 6
+#define LLC_SAP_EV_TEST_REQ		 7
+#define LLC_SAP_EV_RX_TEST_C		 8
+#define LLC_SAP_EV_RX_TEST_R		 9
+#define LLC_SAP_EV_DEACTIVATION_REQ	10
+
+struct llc_sap_state_ev {
+	u8		prim;
+	u8		prim_type;
+	u8		type;
+	u8		reason;
+	u8		ind_cfm_flag;
+	struct llc_addr saddr;
+	struct llc_addr daddr;
+};
+
+static __inline__ struct llc_sap_state_ev *llc_sap_ev(struct sk_buff *skb)
+{
+	return (struct llc_sap_state_ev *)skb->cb;
+}
+
+struct llc_sap;
+
+typedef int (*llc_sap_ev_t)(struct llc_sap *sap, struct sk_buff *skb);
+
+extern int llc_sap_ev_activation_req(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_rx_ui(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_unitdata_req(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_xid_req(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_rx_xid_c(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_rx_xid_r(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_test_req(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_rx_test_c(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_rx_test_r(struct llc_sap *sap, struct sk_buff *skb);
+extern int llc_sap_ev_deactivation_req(struct llc_sap *sap,
+				       struct sk_buff *skb);
+#endif /* LLC_S_EV_H */
diff -Nru a/net/llc/llc_s_st.c b/net/llc/llc_s_st.c
--- a/net/llc/llc_s_st.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_s_st.c	Sat Nov 15 17:04:10 2003
@@ -14,11 +14,11 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/types.h>
-#include <net/llc_if.h>
-#include <net/llc_s_ev.h>
-#include <net/llc_s_ac.h>
-#include <net/llc_s_st.h>
+
+#include "llc_if.h"
+#include "llc_s_ev.h"
+#include "llc_s_ac.h"
+#include "llc_s_st.h"
 
 /* dummy last-transition indicator; common to all state transition groups
  * last entry for this state
diff -Nru a/net/llc/llc_s_st.h b/net/llc/llc_s_st.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_s_st.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,32 @@
+#ifndef LLC_S_ST_H
+#define LLC_S_ST_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+
+#define LLC_NR_SAP_STATES	2       /* size of state table */
+
+/* structures and types */
+/* SAP state table structure */
+struct llc_sap_state_trans {
+	llc_sap_ev_t	  ev;
+	u8		  next_state;
+	llc_sap_action_t *ev_actions;
+};
+
+struct llc_sap_state {
+	u8			   curr_state;
+	struct llc_sap_state_trans **transitions;
+};
+
+/* only access to SAP state table */
+extern struct llc_sap_state llc_sap_state_table[LLC_NR_SAP_STATES];
+#endif /* LLC_S_ST_H */
diff -Nru a/net/llc/llc_sap.c b/net/llc/llc_sap.c
--- a/net/llc/llc_sap.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_sap.c	Sat Nov 15 17:04:10 2003
@@ -13,16 +13,13 @@
  */
 
 #include <net/llc.h>
-#include <net/llc_if.h>
-#include <net/llc_conn.h>
-#include <net/llc_pdu.h>
-#include <net/llc_sap.h>
-#include <net/llc_s_ac.h>
-#include <net/llc_s_ev.h>
-#include <net/llc_s_st.h>
-#include <net/sock.h>
+#include "llc_conn.h"
+#include "llc_if.h"
+#include "llc_pdu.h"
+#include "llc_s_ac.h"
+#include "llc_s_ev.h"
+#include "llc_s_st.h"
 #include <linux/tcp.h>
-#include <linux/llc.h>
 
 /**
  *	llc_alloc_frame - allocates sk_buff for frame
diff -Nru a/net/llc/llc_sap.h b/net/llc/llc_sap.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/llc/llc_sap.h	Sat Nov 15 17:04:10 2003
@@ -0,0 +1,22 @@
+#ifndef LLC_SAP_H
+#define LLC_SAP_H
+/*
+ * Copyright (c) 1997 by Procom Technology,Inc.
+ * 		 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *
+ * This program can be redistributed or modified under the terms of the
+ * GNU General Public License as published by the Free Software Foundation.
+ * This program is distributed without any warranty or implied warranty
+ * of merchantability or fitness for a particular purpose.
+ *
+ * See the GNU General Public License for more details.
+ */
+struct llc_sap;
+struct sk_buff;
+struct net_device;
+
+extern void llc_sap_state_process(struct llc_sap *sap, struct sk_buff *skb);
+extern void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb);
+extern void llc_save_primitive(struct sk_buff* skb, unsigned char prim);
+extern struct sk_buff *llc_alloc_frame(struct net_device *dev);
+#endif /* LLC_SAP_H */
diff -Nru a/net/llc/llc_station.c b/net/llc/llc_station.c
--- a/net/llc/llc_station.c	Sat Nov 15 17:04:10 2003
+++ b/net/llc/llc_station.c	Sat Nov 15 17:04:10 2003
@@ -15,15 +15,15 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <net/llc.h>
-#include <net/llc_sap.h>
-#include <net/llc_conn.h>
-#include <net/llc_c_ac.h>
-#include <net/llc_s_ac.h>
-#include <net/llc_c_ev.h>
-#include <net/llc_c_st.h>
-#include <net/llc_s_ev.h>
-#include <net/llc_s_st.h>
-#include <net/llc_pdu.h>
+#include "llc_sap.h"
+#include "llc_conn.h"
+#include "llc_c_ac.h"
+#include "llc_s_ac.h"
+#include "llc_c_ev.h"
+#include "llc_c_st.h"
+#include "llc_s_ev.h"
+#include "llc_s_st.h"
+#include "llc_pdu.h"
 
 /**
  * struct llc_station - LLC station component

===================================================================


This BitKeeper patch contains the following changesets:
1.1414.4.12
## Wrapped with gzip_uu ##


M'XL( *MXMC\  ]5<6V_;R!5^#G\%D;RTVTJ>^\5M%FF316ML@ 8I]JV 00Z'
MD6!;,D3:FP7XXWMF*#F2.))F& >0G4!)2.KHZ'S?N<Y,WN2_-79U^:HP=S9[
MD_][V;27K\QR84T[?RRF9GDW+5=PX_-R"3<N9LL[>^&>O2AOR,7"MA,R%5.<
MP1.?BM;,\D>[:BY?X2E]NM+^<6\O7WW^Y5^_??S'YRQ[^S9_/RL67^Q_;9N_
M?9NUR]5C<5LU[XIV=KM<3-M5L6CN;.L_NWMZM",($?C%L:2(BPX+Q&1G<(5Q
MP;"M$&%*L,RI]FY?_5TI%&.DX7%&>8<D(CS[D.,I9IA-V123'-$+C"^0SA&Y
MI.P2J0G\!:$\*#K_"Q'Y!&7_S)_W>[S/3+[,/WY\?YG?+1]M?K^"SVQM/K-%
M!1:&3\M_G]F5S=N9_2,O+7SBE\L<\+BXO379KSE11&>?OEDZFR3^9!DJ4/9S
M^%MW\X6Y?:CLQ?H#K^^KA^FL_VJ<8D0I)ZPC @G9L5I@9(TH)+:\* X(7 O:
M%=8C11G%I,-$:7E0G^VWF^O"3,V^,A3^13LLZX(AK#5!H!:C2>)Z=1AE"'5,
M(RWBU%DN%@%U,!>TJY4N<$U )4V+BJDD<=OJ$"+%8;2VW]^$K4,TEQWFU&IC
M:BY+A91-DK:C#2.<1G/G#D0,N<,E9IW2O*IK5*FRD+8L3)S$;?+T"B$,](DR
MS[P.8:65ZDR%J[(TE< 448-CJ+,1MF,;B2F)MDUS;1]#CL6([$15%MAP"@'$
M: @E47!MQ&V[%A%*\"CKW(6Y0Y#N"E)44B&":TME(7B,>1;W#VW 0IC)P^S9
M_3I-&] '_H"P([&TAMB2XYHKA)/$[7BZ9.PP8+N1(J@.4A %C="D* VA)2<*
M?#Y)W+8ZG&@9IXX+HP&PA, =+9"JL!%&EE6!C$R1MJ.,Y$>8LT]F<(> GW.&
M.HW ++6A)7,AB) XWQH0&7&-#@?E?75,V+>8H*2C%2EMK7EAC*H9JJ+@"OD6
MQQ ]XMV]N ]YNQ2JJP$JI)B =*HPJ6(T>I*V#1E&7,4Z^SR4N""XXPY714T@
M,',B*U39&,":MFCGRT#NPE .Q9O(Y[\ C; F76T!+F!075-;E#)&JV_B=O*%
MA/0>%X+ QH$(Q)GJA#78 *.-K04A5*=(VW$R02B+\_C5<A.?,4*<8,XYZBAS
M4H264G%)*B$K0FU,^OHF;L<VH$]* @MF=T&XZCBRE6+6<"2QT8>2^Z#<&):&
M&JM(M)R/!N#"$G46(J+FQEH+A1C$H21QVP:BKKN(3!A!=0 YU5E3% 83"$8E
M@O(E2=I.-G562HB)0;B@5X*8R  P4E90 T$P*N-26 @OQJ6(JYV;I;D)X24%
M[RCT X08S!0O-:!V0EQ17[O2<&@?<(^$Z.-R<B#Z $)=B>H"U8[:DA>2'&@8
MARE^F#.4T(>KU:&'!542 KX<>!7#A!I9&%Y!-(HM@@8J0=D@XUQL^=!^J^H0
M>"8HI(#/T*%HVE'+2Z95C4M>EU3&1*$=@=MA$4N,_3AAR#@W5WA^PH\0J0E%
MF(&X3F!%F)\T\*T) [YD]!*3XQ,&]*,&#)_MHKBSEWGX&^23GP.FS7[->__]
M3SY9_>Y_3R;9I]"3Z2.'(9JNIDI!,[ZD2Q;Y-#<"-B.%@7Q^;H1> )S>B@,X
MW56 LR]1C\+IGWP..%UL28$S/MJ.$*D!0P%FY5""@E /)WT!:'HC#M!T5QV:
M/GD<1=,_^0QH^M(Y <V$RCU9)*0:>.6<( G."16"1Y.<AW,> ;.WX3Z8_BJ 
M*9QQCH+9/SD"S/36J*\$>I6\<?%@5(Z.&Q?G$WQVDW+?ZOT($W^ '@)G5_[U
MS1KX_/5F=O%ZX$_N:KPWQ0]3$@7VGH2YAC:?"PVIP:<Y<1:>="PP>OOM>9*[
MYH*BFPL=P=@_-L*) ,'![#D>PH3!=U85C_;NW>*A;::+^>*FF(*00W-OU_US
M\%;40:F"R# 21CFK.L=E+3_'WP-R8(412%XIGK/,?FWM:I$_+N=5[@ J'^:W
MU76QJ*X;"R^M;=KK^YOV3TV[>C!MOI[8Y#_!RU^S5^YG?:>Y@??6-=RY*==W
M'A;-_,O"5KF9%:O\IPK #]ZI0-B?_P8*R=,*?9U7Q_7)^Y^#6JWO']0M>'^M
MX7[X\JMV\>2/7S%,%>BZ3H$U=@Z A%LU= Z@SCY^]0;<"V#^HB.^7_X\$L+Z
M!\?%L.&(+1['A '?"(E0$T(N(E1WF'$N7TB)W@3[YV;3/_?SRB-8-L_5/S>)
M_7/*<N,(D9HP0%0SVH&3$N'1E"\ S5#[W&S:YW[U]"B:S]0^-XGM<\ID,%GD
M=IF(F93*H\E> )JA]KG9M,_]H/,HFL_4/OO5N00PXY<&4R7V[1V\8-I1)A$[
MU#O3L^J=>P/N ^DNNHJ?\.,P^N=&H)B\[.K:9@AX7J%Q;3/859]?)>[7D7^ 
MA3\0DNOP7-\<=I>Q&\"2Q*TGP)01U GD6A%?CR0#*O()/K]!2+^E[=18WXR"
M%$'GEEU1E(N]44@_77F]=]5S9_]B/X8>7G6UTO"JB]+[5WV-/!R\] NGL=R*
M7K)-DK:]N$ ED^M-J</=J">HQ?.)/#MF]6O0IU881C&+BEQF5XSD//M?%+4.
M\27$K8-\<1NS8OD2OR<L21Q%T-^"2$5EQ[7;4^@((T;P19P=7_H];J?6,$;Q
M!4L(05<DQ)=^*OO],2>X3A)+EX3-PDGB-O$%,=T123#MRW6:RA=YEO'%[WX^
M-<,?QQ>14Y^_&+"&0JR)C3+/E*N">3&P<A#)K_CMS0G"^E:0$<9YQY1>CVF(
M&E,6T?,CE]^P?7SQ8!RUF",5!"0,I/J -52]5T0F)++O#TWK'=AQW$G8_!U#
MGOW-W^O8!-%M758GYS*<3\CYT<?O9C]&G]X0(X,363,HJG!YVH(;"WC\!N"8
MOGBX ;B?.6"N5+^9ALE4S/59]L9^1_.QWGACBE&H*Q\I!+S&=$T)57"34!N'
MLU83?+9)Z<8V^_WB.)JVW3!K9O;N;@YD6+U;-M7M=+GZ<DP<H00C14G'H6+2
M@PGGR]WTT&^>/,+0C2%&#G"PK[$CPY(_6A('=\*9EA1IWRH8T7$%!5#??2</
M=L@Y9J#^D,Z)I<-QD8C[_..RT!/0?[^=+QZ^7C0W;JEY.OLYD@+^J$$D!Q).
M.22)<SF)((D9T9W;'+C>.9$\@V'YA)\?"]RIC6,D\&88Z>[<YR/V':.6<#K9
M)*_@(G4D71(.O"9)VZY@")>,C)S8R7-D2W^"]]02]1BZ7!%\-%Q *P1]-C_0
M"H6[X@/%3+ 4"7?03<((..4049(XB@2&/@AS+("?6(K!QI78\'-^771_*.K4
M*ODH0D'^V730U-.+1@SVPNPXU#<E#'Q3SB0GB=L9^&*&^. P2>S ]_S"37_&
M^M2J^]B!+_>LB!OX'FI@PA$F/%7QIS@CV1)_?#1%VG9N$DRON4*3I[WB'+OK
M_CSLB97GL?,4Y<>\<:N4(?Y\?X):D^H#<?O&MZFU.<$8R:R$HY,GQ V/3JYG
M=8*O=Q>+Y*J'G&.2ZL^"'F#6Q@JC5BF12TV4;%<^A^GR5/5N_@<E,[/FIGFX
2>RM05=2%4=G_ ?6'+3ZV20  
 
