|
@@ -80,7 +80,30 @@ static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *,
|
|
static int add_ref_cm_node(struct nes_cm_node *);
|
|
static int add_ref_cm_node(struct nes_cm_node *);
|
|
static int rem_ref_cm_node(struct nes_cm_core *, struct nes_cm_node *);
|
|
static int rem_ref_cm_node(struct nes_cm_core *, struct nes_cm_node *);
|
|
static int mini_cm_del_listen(struct nes_cm_core *, struct nes_cm_listener *);
|
|
static int mini_cm_del_listen(struct nes_cm_core *, struct nes_cm_listener *);
|
|
-
|
|
|
|
|
|
+static struct sk_buff *form_cm_frame(struct sk_buff *, struct nes_cm_node *,
|
|
|
|
+ void *, u32, void *, u32, u8);
|
|
|
|
+static struct sk_buff *get_free_pkt(struct nes_cm_node *cm_node);
|
|
|
|
+
|
|
|
|
+static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *,
|
|
|
|
+ struct nes_vnic *,
|
|
|
|
+ struct ietf_mpa_frame *,
|
|
|
|
+ struct nes_cm_info *);
|
|
|
|
+static int mini_cm_accept(struct nes_cm_core *, struct ietf_mpa_frame *,
|
|
|
|
+ struct nes_cm_node *);
|
|
|
|
+static int mini_cm_reject(struct nes_cm_core *, struct ietf_mpa_frame *,
|
|
|
|
+ struct nes_cm_node *);
|
|
|
|
+static int mini_cm_close(struct nes_cm_core *, struct nes_cm_node *);
|
|
|
|
+static int mini_cm_recv_pkt(struct nes_cm_core *, struct nes_vnic *,
|
|
|
|
+ struct sk_buff *);
|
|
|
|
+static int mini_cm_dealloc_core(struct nes_cm_core *);
|
|
|
|
+static int mini_cm_get(struct nes_cm_core *);
|
|
|
|
+static int mini_cm_set(struct nes_cm_core *, u32, u32);
|
|
|
|
+static int nes_cm_disconn_true(struct nes_qp *);
|
|
|
|
+static int nes_cm_post_event(struct nes_cm_event *event);
|
|
|
|
+static int nes_disconnect(struct nes_qp *nesqp, int abrupt);
|
|
|
|
+static void nes_disconnect_worker(struct work_struct *work);
|
|
|
|
+static int send_ack(struct nes_cm_node *cm_node);
|
|
|
|
+static int send_fin(struct nes_cm_node *cm_node, struct sk_buff *skb);
|
|
|
|
|
|
/* External CM API Interface */
|
|
/* External CM API Interface */
|
|
/* instance of function pointers for client API */
|
|
/* instance of function pointers for client API */
|
|
@@ -99,7 +122,7 @@ static struct nes_cm_ops nes_cm_api = {
|
|
mini_cm_set
|
|
mini_cm_set
|
|
};
|
|
};
|
|
|
|
|
|
-struct nes_cm_core *g_cm_core;
|
|
|
|
|
|
+static struct nes_cm_core *g_cm_core;
|
|
|
|
|
|
atomic_t cm_connects;
|
|
atomic_t cm_connects;
|
|
atomic_t cm_accepts;
|
|
atomic_t cm_accepts;
|
|
@@ -149,7 +172,7 @@ static struct nes_cm_event *create_event(struct nes_cm_node *cm_node,
|
|
/**
|
|
/**
|
|
* send_mpa_request
|
|
* send_mpa_request
|
|
*/
|
|
*/
|
|
-int send_mpa_request(struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static int send_mpa_request(struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
int ret;
|
|
int ret;
|
|
@@ -243,8 +266,9 @@ static int handle_exception_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb
|
|
* form_cm_frame - get a free packet and build empty frame Use
|
|
* form_cm_frame - get a free packet and build empty frame Use
|
|
* node info to build.
|
|
* node info to build.
|
|
*/
|
|
*/
|
|
-struct sk_buff *form_cm_frame(struct sk_buff *skb, struct nes_cm_node *cm_node,
|
|
|
|
- void *options, u32 optionsize, void *data, u32 datasize, u8 flags)
|
|
|
|
|
|
+static struct sk_buff *form_cm_frame(struct sk_buff *skb, struct nes_cm_node *cm_node,
|
|
|
|
+ void *options, u32 optionsize, void *data,
|
|
|
|
+ u32 datasize, u8 flags)
|
|
{
|
|
{
|
|
struct tcphdr *tcph;
|
|
struct tcphdr *tcph;
|
|
struct iphdr *iph;
|
|
struct iphdr *iph;
|
|
@@ -442,7 +466,7 @@ int schedule_nes_timer(struct nes_cm_node *cm_node, struct sk_buff *skb,
|
|
/**
|
|
/**
|
|
* nes_cm_timer_tick
|
|
* nes_cm_timer_tick
|
|
*/
|
|
*/
|
|
-void nes_cm_timer_tick(unsigned long pass)
|
|
|
|
|
|
+static void nes_cm_timer_tick(unsigned long pass)
|
|
{
|
|
{
|
|
unsigned long flags, qplockflags;
|
|
unsigned long flags, qplockflags;
|
|
unsigned long nexttimeout = jiffies + NES_LONG_TIME;
|
|
unsigned long nexttimeout = jiffies + NES_LONG_TIME;
|
|
@@ -644,7 +668,7 @@ void nes_cm_timer_tick(unsigned long pass)
|
|
/**
|
|
/**
|
|
* send_syn
|
|
* send_syn
|
|
*/
|
|
*/
|
|
-int send_syn(struct nes_cm_node *cm_node, u32 sendack)
|
|
|
|
|
|
+static int send_syn(struct nes_cm_node *cm_node, u32 sendack)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
int flags = SET_SYN;
|
|
int flags = SET_SYN;
|
|
@@ -710,7 +734,7 @@ int send_syn(struct nes_cm_node *cm_node, u32 sendack)
|
|
/**
|
|
/**
|
|
* send_reset
|
|
* send_reset
|
|
*/
|
|
*/
|
|
-int send_reset(struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static int send_reset(struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
struct sk_buff *skb = get_free_pkt(cm_node);
|
|
struct sk_buff *skb = get_free_pkt(cm_node);
|
|
@@ -732,7 +756,7 @@ int send_reset(struct nes_cm_node *cm_node)
|
|
/**
|
|
/**
|
|
* send_ack
|
|
* send_ack
|
|
*/
|
|
*/
|
|
-int send_ack(struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static int send_ack(struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
struct sk_buff *skb = get_free_pkt(cm_node);
|
|
struct sk_buff *skb = get_free_pkt(cm_node);
|
|
@@ -752,7 +776,7 @@ int send_ack(struct nes_cm_node *cm_node)
|
|
/**
|
|
/**
|
|
* send_fin
|
|
* send_fin
|
|
*/
|
|
*/
|
|
-int send_fin(struct nes_cm_node *cm_node, struct sk_buff *skb)
|
|
|
|
|
|
+static int send_fin(struct nes_cm_node *cm_node, struct sk_buff *skb)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
@@ -775,7 +799,7 @@ int send_fin(struct nes_cm_node *cm_node, struct sk_buff *skb)
|
|
/**
|
|
/**
|
|
* get_free_pkt
|
|
* get_free_pkt
|
|
*/
|
|
*/
|
|
-struct sk_buff *get_free_pkt(struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static struct sk_buff *get_free_pkt(struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
struct sk_buff *skb, *new_skb;
|
|
struct sk_buff *skb, *new_skb;
|
|
|
|
|
|
@@ -1272,8 +1296,8 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc, u32 opti
|
|
/**
|
|
/**
|
|
* process_packet
|
|
* process_packet
|
|
*/
|
|
*/
|
|
-int process_packet(struct nes_cm_node *cm_node, struct sk_buff *skb,
|
|
|
|
- struct nes_cm_core *cm_core)
|
|
|
|
|
|
+static int process_packet(struct nes_cm_node *cm_node, struct sk_buff *skb,
|
|
|
|
+ struct nes_cm_core *cm_core)
|
|
{
|
|
{
|
|
int optionsize;
|
|
int optionsize;
|
|
int datasize;
|
|
int datasize;
|
|
@@ -1631,9 +1655,10 @@ static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *cm_core,
|
|
/**
|
|
/**
|
|
* mini_cm_connect - make a connection node with params
|
|
* mini_cm_connect - make a connection node with params
|
|
*/
|
|
*/
|
|
-struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
|
|
|
|
- struct nes_vnic *nesvnic, struct ietf_mpa_frame *mpa_frame,
|
|
|
|
- struct nes_cm_info *cm_info)
|
|
|
|
|
|
+static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
|
|
|
|
+ struct nes_vnic *nesvnic,
|
|
|
|
+ struct ietf_mpa_frame *mpa_frame,
|
|
|
|
+ struct nes_cm_info *cm_info)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
struct nes_cm_node *cm_node;
|
|
struct nes_cm_node *cm_node;
|
|
@@ -1717,8 +1742,8 @@ struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
|
|
* mini_cm_accept - accept a connection
|
|
* mini_cm_accept - accept a connection
|
|
* This function is never called
|
|
* This function is never called
|
|
*/
|
|
*/
|
|
-int mini_cm_accept(struct nes_cm_core *cm_core, struct ietf_mpa_frame *mpa_frame,
|
|
|
|
- struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static int mini_cm_accept(struct nes_cm_core *cm_core, struct ietf_mpa_frame *mpa_frame,
|
|
|
|
+ struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -1727,9 +1752,9 @@ int mini_cm_accept(struct nes_cm_core *cm_core, struct ietf_mpa_frame *mpa_frame
|
|
/**
|
|
/**
|
|
* mini_cm_reject - reject and teardown a connection
|
|
* mini_cm_reject - reject and teardown a connection
|
|
*/
|
|
*/
|
|
-int mini_cm_reject(struct nes_cm_core *cm_core,
|
|
|
|
- struct ietf_mpa_frame *mpa_frame,
|
|
|
|
- struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static int mini_cm_reject(struct nes_cm_core *cm_core,
|
|
|
|
+ struct ietf_mpa_frame *mpa_frame,
|
|
|
|
+ struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
@@ -1761,7 +1786,7 @@ int mini_cm_reject(struct nes_cm_core *cm_core,
|
|
/**
|
|
/**
|
|
* mini_cm_close
|
|
* mini_cm_close
|
|
*/
|
|
*/
|
|
-int mini_cm_close(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node)
|
|
|
|
|
|
+static int mini_cm_close(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
|
|
|
|
@@ -1808,8 +1833,8 @@ int mini_cm_close(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node)
|
|
* recv_pkt - recv an ETHERNET packet, and process it through CM
|
|
* recv_pkt - recv an ETHERNET packet, and process it through CM
|
|
* node state machine
|
|
* node state machine
|
|
*/
|
|
*/
|
|
-int mini_cm_recv_pkt(struct nes_cm_core *cm_core, struct nes_vnic *nesvnic,
|
|
|
|
- struct sk_buff *skb)
|
|
|
|
|
|
+static int mini_cm_recv_pkt(struct nes_cm_core *cm_core, struct nes_vnic *nesvnic,
|
|
|
|
+ struct sk_buff *skb)
|
|
{
|
|
{
|
|
struct nes_cm_node *cm_node = NULL;
|
|
struct nes_cm_node *cm_node = NULL;
|
|
struct nes_cm_listener *listener = NULL;
|
|
struct nes_cm_listener *listener = NULL;
|
|
@@ -1898,7 +1923,7 @@ int mini_cm_recv_pkt(struct nes_cm_core *cm_core, struct nes_vnic *nesvnic,
|
|
/**
|
|
/**
|
|
* nes_cm_alloc_core - allocate a top level instance of a cm core
|
|
* nes_cm_alloc_core - allocate a top level instance of a cm core
|
|
*/
|
|
*/
|
|
-struct nes_cm_core *nes_cm_alloc_core(void)
|
|
|
|
|
|
+static struct nes_cm_core *nes_cm_alloc_core(void)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -1958,7 +1983,7 @@ struct nes_cm_core *nes_cm_alloc_core(void)
|
|
/**
|
|
/**
|
|
* mini_cm_dealloc_core - deallocate a top level instance of a cm core
|
|
* mini_cm_dealloc_core - deallocate a top level instance of a cm core
|
|
*/
|
|
*/
|
|
-int mini_cm_dealloc_core(struct nes_cm_core *cm_core)
|
|
|
|
|
|
+static int mini_cm_dealloc_core(struct nes_cm_core *cm_core)
|
|
{
|
|
{
|
|
nes_debug(NES_DBG_CM, "De-Alloc CM Core (%p)\n", cm_core);
|
|
nes_debug(NES_DBG_CM, "De-Alloc CM Core (%p)\n", cm_core);
|
|
|
|
|
|
@@ -1983,7 +2008,7 @@ int mini_cm_dealloc_core(struct nes_cm_core *cm_core)
|
|
/**
|
|
/**
|
|
* mini_cm_get
|
|
* mini_cm_get
|
|
*/
|
|
*/
|
|
-int mini_cm_get(struct nes_cm_core *cm_core)
|
|
|
|
|
|
+static int mini_cm_get(struct nes_cm_core *cm_core)
|
|
{
|
|
{
|
|
return cm_core->state;
|
|
return cm_core->state;
|
|
}
|
|
}
|
|
@@ -1992,7 +2017,7 @@ int mini_cm_get(struct nes_cm_core *cm_core)
|
|
/**
|
|
/**
|
|
* mini_cm_set
|
|
* mini_cm_set
|
|
*/
|
|
*/
|
|
-int mini_cm_set(struct nes_cm_core *cm_core, u32 type, u32 value)
|
|
|
|
|
|
+static int mini_cm_set(struct nes_cm_core *cm_core, u32 type, u32 value)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
|
|
|
|
@@ -2109,7 +2134,7 @@ int nes_cm_disconn(struct nes_qp *nesqp)
|
|
/**
|
|
/**
|
|
* nes_disconnect_worker
|
|
* nes_disconnect_worker
|
|
*/
|
|
*/
|
|
-void nes_disconnect_worker(struct work_struct *work)
|
|
|
|
|
|
+static void nes_disconnect_worker(struct work_struct *work)
|
|
{
|
|
{
|
|
struct nes_qp *nesqp = container_of(work, struct nes_qp, disconn_work);
|
|
struct nes_qp *nesqp = container_of(work, struct nes_qp, disconn_work);
|
|
|
|
|
|
@@ -2122,7 +2147,7 @@ void nes_disconnect_worker(struct work_struct *work)
|
|
/**
|
|
/**
|
|
* nes_cm_disconn_true
|
|
* nes_cm_disconn_true
|
|
*/
|
|
*/
|
|
-int nes_cm_disconn_true(struct nes_qp *nesqp)
|
|
|
|
|
|
+static int nes_cm_disconn_true(struct nes_qp *nesqp)
|
|
{
|
|
{
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
int ret = 0;
|
|
int ret = 0;
|
|
@@ -2265,7 +2290,7 @@ int nes_cm_disconn_true(struct nes_qp *nesqp)
|
|
/**
|
|
/**
|
|
* nes_disconnect
|
|
* nes_disconnect
|
|
*/
|
|
*/
|
|
-int nes_disconnect(struct nes_qp *nesqp, int abrupt)
|
|
|
|
|
|
+static int nes_disconnect(struct nes_qp *nesqp, int abrupt)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
struct nes_vnic *nesvnic;
|
|
struct nes_vnic *nesvnic;
|
|
@@ -2740,7 +2765,7 @@ int nes_cm_stop(void)
|
|
* cm_event_connected
|
|
* cm_event_connected
|
|
* handle a connected event, setup QPs and HW
|
|
* handle a connected event, setup QPs and HW
|
|
*/
|
|
*/
|
|
-void cm_event_connected(struct nes_cm_event *event)
|
|
|
|
|
|
+static void cm_event_connected(struct nes_cm_event *event)
|
|
{
|
|
{
|
|
u64 u64temp;
|
|
u64 u64temp;
|
|
struct nes_qp *nesqp;
|
|
struct nes_qp *nesqp;
|
|
@@ -2877,7 +2902,7 @@ void cm_event_connected(struct nes_cm_event *event)
|
|
/**
|
|
/**
|
|
* cm_event_connect_error
|
|
* cm_event_connect_error
|
|
*/
|
|
*/
|
|
-void cm_event_connect_error(struct nes_cm_event *event)
|
|
|
|
|
|
+static void cm_event_connect_error(struct nes_cm_event *event)
|
|
{
|
|
{
|
|
struct nes_qp *nesqp;
|
|
struct nes_qp *nesqp;
|
|
struct iw_cm_id *cm_id;
|
|
struct iw_cm_id *cm_id;
|
|
@@ -2930,7 +2955,7 @@ void cm_event_connect_error(struct nes_cm_event *event)
|
|
/**
|
|
/**
|
|
* cm_event_reset
|
|
* cm_event_reset
|
|
*/
|
|
*/
|
|
-void cm_event_reset(struct nes_cm_event *event)
|
|
|
|
|
|
+static void cm_event_reset(struct nes_cm_event *event)
|
|
{
|
|
{
|
|
struct nes_qp *nesqp;
|
|
struct nes_qp *nesqp;
|
|
struct iw_cm_id *cm_id;
|
|
struct iw_cm_id *cm_id;
|
|
@@ -2973,7 +2998,7 @@ void cm_event_reset(struct nes_cm_event *event)
|
|
/**
|
|
/**
|
|
* cm_event_mpa_req
|
|
* cm_event_mpa_req
|
|
*/
|
|
*/
|
|
-void cm_event_mpa_req(struct nes_cm_event *event)
|
|
|
|
|
|
+static void cm_event_mpa_req(struct nes_cm_event *event)
|
|
{
|
|
{
|
|
struct iw_cm_id *cm_id;
|
|
struct iw_cm_id *cm_id;
|
|
struct iw_cm_event cm_event;
|
|
struct iw_cm_event cm_event;
|
|
@@ -3019,7 +3044,7 @@ static void nes_cm_event_handler(struct work_struct *);
|
|
* nes_cm_post_event
|
|
* nes_cm_post_event
|
|
* post an event to the cm event handler
|
|
* post an event to the cm event handler
|
|
*/
|
|
*/
|
|
-int nes_cm_post_event(struct nes_cm_event *event)
|
|
|
|
|
|
+static int nes_cm_post_event(struct nes_cm_event *event)
|
|
{
|
|
{
|
|
atomic_inc(&event->cm_node->cm_core->events_posted);
|
|
atomic_inc(&event->cm_node->cm_core->events_posted);
|
|
add_ref_cm_node(event->cm_node);
|
|
add_ref_cm_node(event->cm_node);
|