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,
309 * llc_lookup_dgram - Finds dgram socket for the local sap/mac
310 * @sap: SAP
315 * mac, and local sap. Returns pointer for socket found, %NULL otherwise.
317 static struct sock *llc_lookup_dgram(struct llc_sap *sap,
323 int slot = llc_sk_laddr_hashfn(sap, laddr);
324 struct hlist_nulls_head *laddr_hb = &sap->sk_laddr_hash[slot];
329 if (llc_dgram_match(sap, laddr, rc, net)) {
333 if (unlikely(llc_sk(rc)->sap != sap ||
334 !llc_dgram_match(sap, laddr, rc, net))) {
354 static inline bool llc_mcast_match(const struct llc_sap *sap,
366 static void llc_do_mcast(struct llc_sap *sap, struct sk_buff *skb,
379 llc_sap_rcv(sap, skb1, stack[i]);
386 * @sap: SAP
390 * Search socket list of the SAP and finds connections with same sap.
393 static void llc_sap_mcast(struct llc_sap *sap,
401 struct hlist_head *dev_hb = llc_sk_dev_hash(sap, skb->dev->ifindex);
403 spin_lock_bh(&sap->sk_lock);
408 if (!llc_mcast_match(sap, laddr, skb, sk))
415 llc_do_mcast(sap, skb, stack, i);
419 spin_unlock_bh(&sap->sk_lock);
421 llc_do_mcast(sap, skb, stack, i);
425 void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb)
433 llc_sap_mcast(sap, &laddr, skb);
436 struct sock *sk = llc_lookup_dgram(sap, &laddr, dev_net(skb->dev));
438 llc_sap_rcv(sap, skb, sk);