summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/net/llc_conn.h3
-rw-r--r--include/net/llc_sap.h2
-rw-r--r--net/llc/llc_conn.c45
-rw-r--r--net/llc/llc_sap.c46
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;