Lines Matching refs:sap

89  *	@sap: pointer to SAP
92 void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb)
110 * @sap: pointer to SAP
117 static struct llc_sap_state_trans *llc_find_sap_trans(struct llc_sap *sap,
123 struct llc_sap_state *curr_state = &llc_sap_state_table[sap->state - 1];
129 if (!next_trans[i]->ev(sap, skb)) {
138 * @sap: pointer to SAP
145 static int llc_exec_sap_trans_actions(struct llc_sap *sap,
153 if ((*next_action)(sap, skb))
160 * @sap: pointer to SAP
167 static int llc_sap_next_state(struct llc_sap *sap, struct sk_buff *skb)
172 if (sap->state > LLC_NR_SAP_STATES)
174 trans = llc_find_sap_trans(sap, skb);
182 rc = llc_exec_sap_trans_actions(sap, trans, skb);
188 sap->state = trans->next_state;
195 * @sap: sap to use
204 static void llc_sap_state_process(struct llc_sap *sap, struct sk_buff *skb)
209 llc_sap_next_state(sap, skb);
223 * @sap: sap to use
226 * @dsap: destination sap
231 void llc_build_and_send_test_pkt(struct llc_sap *sap,
236 ev->saddr.lsap = sap->laddr.lsap;
244 llc_sap_state_process(sap, skb);
249 * @sap: sap to use
252 * @dsap: destination sap
257 void llc_build_and_send_xid_pkt(struct llc_sap *sap, struct sk_buff *skb,
262 ev->saddr.lsap = sap->laddr.lsap;
270 llc_sap_state_process(sap, skb);
274 * llc_sap_rcv - sends received pdus to the sap state machine
275 * @sap: current sap component structure.
279 * Sends received pdus to the sap state machine.
281 static void llc_sap_rcv(struct llc_sap *sap, struct sk_buff *skb,
292 llc_sap_state_process(sap, skb);
295 static inline bool llc_dgram_match(const struct llc_sap *sap,
307 * llc_lookup_dgram - Finds dgram socket for the local sap/mac
308 * @sap: SAP
312 * mac, and local sap. Returns pointer for socket found, %NULL otherwise.
314 static struct sock *llc_lookup_dgram(struct llc_sap *sap,
319 int slot = llc_sk_laddr_hashfn(sap, laddr);
320 struct hlist_nulls_head *laddr_hb = &sap->sk_laddr_hash[slot];
325 if (llc_dgram_match(sap, laddr, rc)) {
329 if (unlikely(llc_sk(rc)->sap != sap ||
330 !llc_dgram_match(sap, laddr, rc))) {
350 static inline bool llc_mcast_match(const struct llc_sap *sap,
362 static void llc_do_mcast(struct llc_sap *sap, struct sk_buff *skb,
375 llc_sap_rcv(sap, skb1, stack[i]);
382 * @sap: SAP
386 * Search socket list of the SAP and finds connections with same sap.
389 static void llc_sap_mcast(struct llc_sap *sap,
397 struct hlist_head *dev_hb = llc_sk_dev_hash(sap, skb->dev->ifindex);
399 spin_lock_bh(&sap->sk_lock);
404 if (!llc_mcast_match(sap, laddr, skb, sk))
411 llc_do_mcast(sap, skb, stack, i);
415 spin_unlock_bh(&sap->sk_lock);
417 llc_do_mcast(sap, skb, stack, i);
421 void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb)
429 llc_sap_mcast(sap, &laddr, skb);
432 struct sock *sk = llc_lookup_dgram(sap, &laddr);
434 llc_sap_rcv(sap, skb, sk);