This source file includes following definitions.
- llc_sk
- llc_set_backlog_type
- llc_backlog_type
1 #ifndef LLC_CONN_H
2 #define LLC_CONN_H
3
4
5
6
7
8
9
10
11
12
13
14 #include <linux/timer.h>
15 #include <net/llc_if.h>
16 #include <net/sock.h>
17 #include <linux/llc.h>
18
19 #define LLC_EVENT 1
20 #define LLC_PACKET 2
21
22 #define LLC2_P_TIME 2
23 #define LLC2_ACK_TIME 1
24 #define LLC2_REJ_TIME 3
25 #define LLC2_BUSY_TIME 3
26
27 struct llc_timer {
28 struct timer_list timer;
29 unsigned long expire;
30 };
31
32 struct llc_sock {
33
34 struct sock sk;
35 struct sockaddr_llc addr;
36 u8 state;
37 struct llc_sap *sap;
38 struct llc_addr laddr;
39 struct llc_addr daddr;
40 struct net_device *dev;
41 u32 copied_seq;
42 u8 retry_count;
43 u8 ack_must_be_send;
44 u8 first_pdu_Ns;
45 u8 npta;
46 struct llc_timer ack_timer;
47 struct llc_timer pf_cycle_timer;
48 struct llc_timer rej_sent_timer;
49 struct llc_timer busy_state_timer;
50 u8 vS;
51 u8 vR;
52 u32 n2;
53 u32 n1;
54 u8 k;
55 u8 rw;
56 u8 p_flag;
57 u8 f_flag;
58 u8 s_flag;
59 u8 data_flag;
60 u8 remote_busy_flag;
61 u8 cause_flag;
62 struct sk_buff_head pdu_unack_q;
63 u16 link;
64 u8 X;
65 u8 ack_pf;
66
67 u8 failed_data_req;
68
69
70
71 u8 dec_step;
72 u8 inc_cntr;
73 u8 dec_cntr;
74 u8 connect_step;
75 u8 last_nr;
76 u32 rx_pdu_hdr;
77
78
79 u32 cmsg_flags;
80 struct hlist_node dev_hash_node;
81 };
82
83 static inline struct llc_sock *llc_sk(const struct sock *sk)
84 {
85 return (struct llc_sock *)sk;
86 }
87
88 static __inline__ void llc_set_backlog_type(struct sk_buff *skb, char type)
89 {
90 skb->cb[sizeof(skb->cb) - 1] = type;
91 }
92
93 static __inline__ char llc_backlog_type(struct sk_buff *skb)
94 {
95 return skb->cb[sizeof(skb->cb) - 1];
96 }
97
98 struct sock *llc_sk_alloc(struct net *net, int family, gfp_t priority,
99 struct proto *prot, int kern);
100 void llc_sk_stop_all_timers(struct sock *sk, bool sync);
101 void llc_sk_free(struct sock *sk);
102
103 void llc_sk_reset(struct sock *sk);
104
105
106 int llc_conn_state_process(struct sock *sk, struct sk_buff *skb);
107 void llc_conn_send_pdu(struct sock *sk, struct sk_buff *skb);
108 void llc_conn_rtn_pdu(struct sock *sk, struct sk_buff *skb);
109 void llc_conn_resend_i_pdu_as_cmd(struct sock *sk, u8 nr, u8 first_p_bit);
110 void llc_conn_resend_i_pdu_as_rsp(struct sock *sk, u8 nr, u8 first_f_bit);
111 int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr, u16 *how_many_unacked);
112 struct sock *llc_lookup_established(struct llc_sap *sap, struct llc_addr *daddr,
113 struct llc_addr *laddr);
114 void llc_sap_add_socket(struct llc_sap *sap, struct sock *sk);
115 void llc_sap_remove_socket(struct llc_sap *sap, struct sock *sk);
116
117 u8 llc_data_accept_state(u8 state);
118 void llc_build_offset_table(void);
119 #endif