summaryrefslogtreecommitdiff
path: root/cesar/cp2/conn
diff options
context:
space:
mode:
authorboure2008-06-17 16:01:11 +0000
committerboure2008-06-17 16:01:11 +0000
commit7398c269d7b995c926794024bec70e6a742590ad (patch)
tree544e322f6150671b67a832c18ac3378dbaa0c679 /cesar/cp2/conn
parenta8f85f4147ecae45fda6fe695105b3e52d6a681b (diff)
modificaiton of variables
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@2362 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/cp2/conn')
-rw-r--r--cesar/cp2/conn/conn.h4
-rw-r--r--cesar/cp2/conn/inc/conn.h7
-rw-r--r--cesar/cp2/conn/inc/link.h2
-rw-r--r--cesar/cp2/conn/link.h11
-rw-r--r--cesar/cp2/conn/src/conn.c4
-rw-r--r--cesar/cp2/conn/src/conn_mgr.c2
-rw-r--r--cesar/cp2/conn/src/link.c36
-rw-r--r--cesar/cp2/conn/test/src/conn_test.c4
8 files changed, 43 insertions, 27 deletions
diff --git a/cesar/cp2/conn/conn.h b/cesar/cp2/conn/conn.h
index 2964920f1f..51d18c485b 100644
--- a/cesar/cp2/conn/conn.h
+++ b/cesar/cp2/conn/conn.h
@@ -145,7 +145,7 @@ cp_conn_add_conn(cp_t *ctx, cp_conn_t *conn);
*
*/
void
-cp_conn_del_conn (cp_t *ctx, u8 cid);
+cp_conn_del_conn (cp_t *ctx, u16 cid);
/**
* Give access to a connection
@@ -155,7 +155,7 @@ cp_conn_del_conn (cp_t *ctx, u8 cid);
*
*/
cp_conn_t*
-cp_conn_get_conn (cp_t *ctx, u8 cid);
+cp_conn_get_conn (cp_t *ctx, u16 cid);
/**
* Modify the caracteristics of a connection
diff --git a/cesar/cp2/conn/inc/conn.h b/cesar/cp2/conn/inc/conn.h
index 4fe503e8ad..60bb721b88 100644
--- a/cesar/cp2/conn/inc/conn.h
+++ b/cesar/cp2/conn/inc/conn.h
@@ -15,8 +15,13 @@
* « long description »
*/
#include "cp2/cp.h"
-//#include "cp2/conn/link.h"
+/**
+ * Return a free lid
+ * \param ctx Control plane context
+ * \return A free lid
+ *
+ */
u8
cp_conn_get_free_lid(cp_t *ctx);
diff --git a/cesar/cp2/conn/inc/link.h b/cesar/cp2/conn/inc/link.h
index 271d64d74a..0a1afabafa 100644
--- a/cesar/cp2/conn/inc/link.h
+++ b/cesar/cp2/conn/inc/link.h
@@ -26,7 +26,7 @@ cp_link_get_lid(void);
* link the BLE
*/
void
-cp_link_push_ble(cp_link_t *link, u8 ble, u16 et);
+cp_link_push_ble(cp_link_t *link, u16 ble, u16 et);
void
cp_link_release_ble(cp_link_t *link);
diff --git a/cesar/cp2/conn/link.h b/cesar/cp2/conn/link.h
index dfd02c1b01..23523f3f05 100644
--- a/cesar/cp2/conn/link.h
+++ b/cesar/cp2/conn/link.h
@@ -15,6 +15,7 @@
* « long description »
*/
#include "lib/blk.h"
+#include "lib/slab.h"
/**
* cinfo structure
*/
@@ -45,7 +46,7 @@ typedef struct cp_link_cinfo_t cp_link_cinfo_t;
struct cp_link_ble_interval_t
{
/** ble value */
- u8 ble;
+ u16 ble;
/** end time */
u16 et_atu;
@@ -236,7 +237,13 @@ struct cp_link_t
/**
* BLEs
*/
- list_t ble;
+ list_t list_ble;
+
+ /**
+ * Slab cache
+ */
+ // slab_cache_t *cache_ble;
+
};
typedef struct cp_link_t cp_link_t;
diff --git a/cesar/cp2/conn/src/conn.c b/cesar/cp2/conn/src/conn.c
index 94d05c89fa..5da7b6d237 100644
--- a/cesar/cp2/conn/src/conn.c
+++ b/cesar/cp2/conn/src/conn.c
@@ -31,7 +31,7 @@
* conn and return it
*/
cp_conn_t*
-cp_conn_get_conn(cp_t *ctx, u8 cid)
+cp_conn_get_conn(cp_t *ctx, u16 cid)
{
bool cid_found = false;
bool no_more_conn = false;
@@ -77,7 +77,7 @@ cp_conn_add_conn(cp_t *ctx, cp_conn_t *conn)
}
void
-cp_conn_del_conn(cp_t *ctx, u8 cid)
+cp_conn_del_conn(cp_t *ctx, u16 cid)
{
cp_conn_t *conn = NULL;
diff --git a/cesar/cp2/conn/src/conn_mgr.c b/cesar/cp2/conn/src/conn_mgr.c
index 328a9b99b8..489c4794f0 100644
--- a/cesar/cp2/conn/src/conn_mgr.c
+++ b/cesar/cp2/conn/src/conn_mgr.c
@@ -93,7 +93,7 @@ cp_conn_mgr_process_cm_conn_new_req(cp_t *ctx, cp_mme_rx_t *mme)
conn->conn_info->stei = mme->peer.tei;
conn->conn_info->dtei = cp_sta_own_data_get_tei(own_sta);
conn->conn_info->lid_f = (u8)received_data.cid;
- conn->conn_info->lid_r = cp_link_get_lid();
+ conn->conn_info->lid_r = cp_conn_get_free_lid(ctx);
conn->conn_info->cspec = received_data.cspec;
/* Conn state OUT */
diff --git a/cesar/cp2/conn/src/link.c b/cesar/cp2/conn/src/link.c
index df515ce454..1d62e80a32 100644
--- a/cesar/cp2/conn/src/link.c
+++ b/cesar/cp2/conn/src/link.c
@@ -13,13 +13,17 @@
* « long description »
*/
#include "common/std.h"
+
#include "cp2/cp.h"
#include "cp2/inc/context.h"
+
+#include "lib/blk.h"
+#include "lib/slab.h"
+
#include "cp2/conn/conn.h"
#include "cp2/conn/inc/conn.h"
#include "cp2/conn/link.h"
#include "cp2/conn/inc/link.h"
-#include "lib/blk.h"
/**
* init a link
@@ -34,10 +38,13 @@ cp_link_t*
cp_link_init (void)
{
cp_link_t *link;
-
- link = blk_alloc();
- list_init(&link->ble);
+// const char *cache_name = "ble";
+ link = blk_alloc();
+ list_init(&link->list_ble);
+
+ /* slab_cache_init(link->cache_ble, cache_name,
+ sizeof(cp_link_ble_interval_t),NULL); */
return link;
}
@@ -61,7 +68,7 @@ cp_link_uninit (cp_link_t *link)
* link the BLE
*/
void
-cp_link_push_ble(cp_link_t *link, u8 ble, u16 et_atu)
+cp_link_push_ble(cp_link_t *link, u16 ble, u16 et_atu)
{
cp_link_ble_interval_t *new;
@@ -73,26 +80,23 @@ cp_link_push_ble(cp_link_t *link, u8 ble, u16 et_atu)
new->et_atu = et_atu;
list_init_node(&new->node);
- list_push(&link->ble, &new->node);
+ list_push(&link->list_ble, &new->node);
}
void
cp_link_release_ble(cp_link_t *link)
{
dbg_assert(link);
+ cp_link_ble_interval_t *tmp_ble;
+
- while(!list_empty(&link->ble))
+ while(!list_empty(&link->list_ble))
{
- blk_release(PARENT_OF(cp_link_ble_interval_t,
- node,list_begin(&link->ble)));
+ tmp_ble = PARENT_OF(cp_link_ble_interval_t,
+ node, list_begin(&link->list_ble));
+ list_remove(&link->list_ble, &tmp_ble->node);
- list_remove(&link->ble, list_begin(&link->ble));
+ blk_release(tmp_ble);
}
}
-u8
-cp_link_get_lid(void)
-{
- return 0;
-}
-
diff --git a/cesar/cp2/conn/test/src/conn_test.c b/cesar/cp2/conn/test/src/conn_test.c
index 21de707f81..27dd8a41dd 100644
--- a/cesar/cp2/conn/test/src/conn_test.c
+++ b/cesar/cp2/conn/test/src/conn_test.c
@@ -130,7 +130,7 @@ test_case_conn_add_conn (test_t test, cp_t *cp)
for(j = 0;j<3;j++)
{
- tmp_ble = PARENT_OF(cp_link_ble_interval_t,node,list_begin(&test_conn[j]->flink->ble));
+ tmp_ble = PARENT_OF(cp_link_ble_interval_t,node,list_begin(&test_conn[j]->flink->list_ble));
for(i = 0; i<10; i++)
{
@@ -233,7 +233,7 @@ test_case_conn_get_conn (test_t test)
for(j = 0;j<3;j++)
{
- tmp_ble = PARENT_OF(cp_link_ble_interval_t, node,list_begin(&conn[j]->flink->ble));
+ tmp_ble = PARENT_OF(cp_link_ble_interval_t, node,list_begin(&conn[j]->flink->list_ble));
for(i = 0; i<10; i++)
{