diff options
| -rw-r--r-- | include/net/llc_conn.h | 3 | ||||
| -rw-r--r-- | include/net/llc_sap.h | 2 | ||||
| -rw-r--r-- | net/llc/llc_conn.c | 45 | ||||
| -rw-r--r-- | net/llc/llc_sap.c | 46 |
4 files changed, 48 insertions, 48 deletions
diff --git a/include/net/llc_conn.h b/include/net/llc_conn.h index b10900c62fa1..4d1e5db3de3c 100644 --- a/include/net/llc_conn.h +++ b/include/net/llc_conn.h @@ -100,9 +100,6 @@ extern struct sock *llc_lookup_established(struct llc_sap *sap, struct llc_addr *laddr); extern struct sock *llc_lookup_listener(struct llc_sap *sap, struct llc_addr *laddr); -extern struct sock *llc_lookup_dgram(struct llc_sap *sap, - struct llc_addr *laddr); -extern void llc_save_primitive(struct sk_buff* skb, u8 prim); extern u8 llc_data_accept_state(u8 state); extern void llc_build_offset_table(void); extern int llc_release_sockets(struct llc_sap *sap); diff --git a/include/net/llc_sap.h b/include/net/llc_sap.h index 2fffd961897e..fab5e668fb5b 100644 --- a/include/net/llc_sap.h +++ b/include/net/llc_sap.h @@ -44,6 +44,8 @@ extern void llc_sap_assign_sock(struct llc_sap *sap, struct sock *sk); extern void llc_sap_unassign_sock(struct llc_sap *sap, struct sock *sk); 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, u8 prim); + extern struct llc_sap *llc_sap_open(u8 lsap, int (*rcv)(struct sk_buff *skb, struct net_device *dev, diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c index 09ddaa1b4f37..ac82b30d6994 100644 --- a/net/llc/llc_conn.c +++ b/net/llc/llc_conn.c @@ -45,22 +45,6 @@ static struct llc_conn_state_trans *llc_qualify_conn_ev(struct sock *sk, /* Offset table on connection states transition diagram */ static int llc_offset_table[NBR_CONN_STATES][NBR_CONN_EV]; -void llc_save_primitive(struct sk_buff* skb, u8 prim) -{ - struct sockaddr_llc *addr = llc_ui_skb_cb(skb); - - /* save primitive for use by the user. */ - addr->sllc_family = skb->sk->sk_family; - addr->sllc_arphrd = skb->dev->type; - addr->sllc_test = prim == LLC_TEST_PRIM; - addr->sllc_xid = prim == LLC_XID_PRIM; - addr->sllc_ua = prim == LLC_DATAUNIT_PRIM; - llc_pdu_decode_sa(skb, addr->sllc_smac); - llc_pdu_decode_da(skb, addr->sllc_dmac); - llc_pdu_decode_dsap(skb, &addr->sllc_dsap); - llc_pdu_decode_ssap(skb, &addr->sllc_ssap); -} - /** * llc_conn_state_process - sends event to connection state machine * @sk: connection @@ -547,35 +531,6 @@ found: } /** - * llc_lookup_dgram - Finds dgram socket for the local sap/mac - * @sap: SAP - * @laddr: address of local LLC (MAC + SAP) - * - * Search socket list of the SAP and finds connection using the local - * mac, and local sap. Returns pointer for socket found, %NULL otherwise. - */ -struct sock *llc_lookup_dgram(struct llc_sap *sap, struct llc_addr *laddr) -{ - struct sock *rc; - struct hlist_node *node; - - read_lock_bh(&sap->sk_list.lock); - sk_for_each(rc, node, &sap->sk_list.list) { - struct llc_opt *llc = llc_sk(rc); - - if (rc->sk_type == SOCK_DGRAM && - llc->laddr.lsap == laddr->lsap && - llc_mac_match(llc->laddr.mac, laddr->mac)) { - sock_hold(rc); - goto found; - } - } - rc = NULL; -found: - read_unlock_bh(&sap->sk_list.lock); - return rc; -} -/** * llc_data_accept_state - designates if in this state data can be sent. * @state: state of connection. * diff --git a/net/llc/llc_sap.c b/net/llc/llc_sap.c index af11c0421963..4eaca37f8546 100644 --- a/net/llc/llc_sap.c +++ b/net/llc/llc_sap.c @@ -23,6 +23,22 @@ #include <net/llc_pdu.h> #include <linux/if_tr.h> +void llc_save_primitive(struct sk_buff* skb, u8 prim) +{ + struct sockaddr_llc *addr = llc_ui_skb_cb(skb); + + /* save primitive for use by the user. */ + addr->sllc_family = skb->sk->sk_family; + addr->sllc_arphrd = skb->dev->type; + addr->sllc_test = prim == LLC_TEST_PRIM; + addr->sllc_xid = prim == LLC_XID_PRIM; + addr->sllc_ua = prim == LLC_DATAUNIT_PRIM; + llc_pdu_decode_sa(skb, addr->sllc_smac); + llc_pdu_decode_da(skb, addr->sllc_dmac); + llc_pdu_decode_dsap(skb, &addr->sllc_dsap); + llc_pdu_decode_ssap(skb, &addr->sllc_ssap); +} + /** * llc_sap_assign_sock - adds a connection to a SAP * @sap: pointer to SAP. @@ -240,6 +256,36 @@ static void llc_sap_rcv(struct llc_sap *sap, struct sk_buff *skb) llc_sap_state_process(sap, skb); } +/** + * llc_lookup_dgram - Finds dgram socket for the local sap/mac + * @sap: SAP + * @laddr: address of local LLC (MAC + SAP) + * + * Search socket list of the SAP and finds connection using the local + * mac, and local sap. Returns pointer for socket found, %NULL otherwise. + */ +struct sock *llc_lookup_dgram(struct llc_sap *sap, struct llc_addr *laddr) +{ + struct sock *rc; + struct hlist_node *node; + + read_lock_bh(&sap->sk_list.lock); + sk_for_each(rc, node, &sap->sk_list.list) { + struct llc_opt *llc = llc_sk(rc); + + if (rc->sk_type == SOCK_DGRAM && + llc->laddr.lsap == laddr->lsap && + llc_mac_match(llc->laddr.mac, laddr->mac)) { + sock_hold(rc); + goto found; + } + } + rc = NULL; +found: + read_unlock_bh(&sap->sk_list.lock); + return rc; +} + void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb) { struct llc_addr laddr; |
