Commit 70ce8871 authored by Adam Wujek's avatar Adam Wujek 💬

userspace/wrsw_rtud: remove get_fd_list and get_vd_list from rtud's minipc

Remove get_fd_list and get_vd_list from rtud's minipc since they're not used
anymore. Rtud's clients use now shmem to get the same information.
Remove helper functions from rtu_fd.c as not needed:
-rtu_fd_lookup_htab_entry
-rtu_vlan_entry_get
-vlan_entry_rd

Additionally following structures were removed as not needed:
-rtudexp_fd_entry_t
-rtudexp_fd_list_t
-rtudexp_vd_entry_t
-rtudexp_vd_list_t
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent 61797bc2
......@@ -330,22 +330,6 @@ void rtu_fd_flush(void)
pthread_mutex_unlock(&fd_mutex);
}
struct rtu_filtering_entry *rtu_fd_lookup_htab_entry(int index)
{
int i, j, n = 0;
for (i = 0; i < RTU_ENTRIES / RTU_BUCKETS; i++) {
for (j = 0; j < RTU_BUCKETS; j++) {
if (rtu_htab[i][j].valid) {
if (n == index)
return &rtu_htab[i][j];
n++;
}
}
}
return NULL;
}
//---------------------------------------------
// Static Methods
//---------------------------------------------
......@@ -655,27 +639,3 @@ void rtu_fd_create_vlan_entry(int vid, uint32_t port_mask, uint8_t fid,
rtu_write_vlan_entry(vid, &vlan_tab[vid]);
}
/**
* \brief Creates or updates a filtering entry in the VLAN table.
* @param vid VLAN ID
* @return entry of VLAN table at given VID-address
*/
struct rtu_vlan_table_entry *rtu_vlan_entry_get(int vid)
{
// First entry reserved for untagged packets.
if (vid > NUM_VLANS)
return NULL;
if (vlan_tab[vid].drop == 0)
vlan_entry_rd(vid);
return &vlan_tab[vid];
}
void vlan_entry_rd(int vid)
{
// First entry reserved for untagged packets.
pr_info(
"vlan_entry_vd: vid %d, drop=%d, fid=%d, port_mask 0x%x\n", vid,
vlan_tab[vid].drop, vlan_tab[vid].fid, vlan_tab[vid].port_mask);
}
......@@ -62,15 +62,8 @@ void rtu_fd_set_hash_poly(uint16_t poly);
void rtu_fd_flush(void);
void rtu_fd_clear_entries_for_port(int dest_port);
struct rtu_filtering_entry *rtu_fd_lookup_htab_entry(int index);
struct rtu_filtering_entry *rtu_fd_lookup_htab_entry(int index);
void rtu_fd_create_vlan_entry(int vid, uint32_t port_mask, uint8_t fid,
uint8_t prio, int has_prio, int prio_override,
int drop);
void vlan_entry_rd(int vid);
struct rtu_vlan_table_entry *rtu_vlan_entry_get(int vid);
#endif /*__WHITERABBIT_RTU_FD_H*/
......@@ -47,79 +47,6 @@ static struct minipc_ch *rtud_ch;
if (minipc_export(rtud_ch, &stru) < 0) { \
pr_error("Could not export %s (rtu_ch=%p)\n",stru.name,rtud_ch); }
/* The exported function */
int rtudexp_get_fd_list(const struct minipc_pd *pd, uint32_t * args, void *ret)
{
int i;
rtudexp_fd_list_t *list = ret;
int start_from = args[0];
pr_info("GetFDList start=%d\n", start_from);
for (i = 0; i < 8; i++) {
struct rtu_filtering_entry *ent =
rtu_fd_lookup_htab_entry(start_from + i);
if (!ent)
break;
memcpy(list->list[i].mac, ent->mac, sizeof(ent->mac));
//printf("Ent: %s %x\n", mac_to_string(ent->mac), ent->port_mask_dst);
list->list[i].dpm = ent->port_mask_dst;
list->list[i].spm = ent->port_mask_src;
list->list[i].priority = 0;
list->list[i].dynamic = ent->dynamic;
list->list[i].hash = ent->addr.hash;
list->list[i].bucket = ent->addr.bucket;
list->list[i].age = ent->age;
list->list[i].fid = ent->fid;
}
list->num_rules = i;
list->next = (i < 8 ? 0 : start_from + i);
return 0;
}
/* The exported vlan */
int rtudexp_get_vd_list(const struct minipc_pd *pd, uint32_t * args, void *ret)
{
int i = 0;
rtudexp_vd_list_t *list = ret;
int current = args[0];
pr_info("GetVDList start=%d\n", current);
do {
struct rtu_vlan_table_entry *ent = rtu_vlan_entry_get(current);
if (!ent)
break;
if (ent->drop == 0 || ent->port_mask != 0x0) {
list->list[i].vid = current;
list->list[i].port_mask = ent->port_mask;
list->list[i].drop = ent->drop;
list->list[i].fid = ent->fid;
list->list[i].has_prio = ent->has_prio;
list->list[i].prio_override = ent->prio_override;
list->list[i].prio = ent->prio;
pr_info(
"vlan_entry_vd: vid %d, drop=%d, fid=%d, port_mask 0x%x\n",
list->list[i].vid, list->list[i].drop,
list->list[i].fid, list->list[i].port_mask);
i++;
}
current++;
if (current == NUM_VLANS)
break;
} while (i < 8);
list->num_entries = i;
list->next = (i < 8 ? 0 : current);
return 0;
}
int rtudexp_clear_entries(const struct minipc_pd *pd,
uint32_t * args, void *ret)
{
......@@ -196,8 +123,6 @@ int rtud_init_exports()
if (getenv("RTUD_MINIPC_DEBUG"))
minipc_set_logfile(rtud_ch, stderr);
MINIPC_EXP_FUNC(rtud_export_get_fd_list, rtudexp_get_fd_list);
MINIPC_EXP_FUNC(rtud_export_get_vd_list, rtudexp_get_vd_list);
MINIPC_EXP_FUNC(rtud_export_clear_entries, rtudexp_clear_entries);
MINIPC_EXP_FUNC(rtud_export_add_entry, rtudexp_add_entry);
MINIPC_EXP_FUNC(rtud_export_vlan_entry, rtudexp_vlan_entry);
......
......@@ -31,64 +31,6 @@
#include <stdint.h>
#include <minipc.h>
typedef struct {
uint8_t mac[8];
uint32_t dpm;
uint32_t spm;
uint8_t priority;
int dynamic;
uint16_t hash;
int bucket;
int age;
int fid;
} rtudexp_fd_entry_t;
typedef struct {
rtudexp_fd_entry_t list[8];
int num_rules;
int next;
} rtudexp_fd_list_t;
///// VLAN export
typedef struct {
int vid;
uint32_t port_mask;
uint8_t fid;
uint8_t prio;
int has_prio;
int prio_override;
int drop;
} rtudexp_vd_entry_t;
typedef struct {
rtudexp_vd_entry_t list[8];
int num_entries;
int next;
} rtudexp_vd_list_t;
/* Export this function: it returns a structure */
struct minipc_pd rtud_export_get_fd_list = {
.name = "get_fd_list",
.retval = MINIPC_ARG_ENCODE(MINIPC_ATYPE_STRUCT,
rtudexp_fd_list_t),
.args = {
MINIPC_ARG_ENCODE(MINIPC_ATYPE_INT, int),
MINIPC_ARG_END,
},
};
/* Export this function: it returns a structure */
struct minipc_pd rtud_export_get_vd_list = {
.name = "get_vd_list",
.retval = MINIPC_ARG_ENCODE(MINIPC_ATYPE_STRUCT,
rtudexp_vd_list_t),
.args = {
MINIPC_ARG_ENCODE(MINIPC_ATYPE_INT, int),
MINIPC_ARG_END,
},
};
/* Export of a function to set remove entry in rtu */
struct minipc_pd rtud_export_clear_entries = {
.name = "clear_entries",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment