Commit 645708b1 authored by Alessandro Rubini's avatar Alessandro Rubini

tools/wrsw_vlans: added ep listing

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 1749516a
...@@ -52,6 +52,7 @@ struct option ropts[] = { ...@@ -52,6 +52,7 @@ struct option ropts[] = {
{"evid", 1, NULL, OPT_EP_VID}, {"evid", 1, NULL, OPT_EP_VID},
{"eprio", 1, NULL, OPT_EP_PRIO}, {"eprio", 1, NULL, OPT_EP_PRIO},
{"eumask", 1, NULL, OPT_EP_UMASK}, {"eumask", 1, NULL, OPT_EP_UMASK},
{"elist", 0, NULL, OPT_EP_LIST},
{"rvid", 1, NULL, OPT_RTU_VID}, {"rvid", 1, NULL, OPT_RTU_VID},
{"rfid", 1, NULL, OPT_RTU_FID}, {"rfid", 1, NULL, OPT_RTU_FID},
{"rmask", 1, NULL, OPT_RTU_PMASK}, {"rmask", 1, NULL, OPT_RTU_PMASK},
...@@ -209,7 +210,10 @@ int main(int argc, char *argv[]) ...@@ -209,7 +210,10 @@ int main(int argc, char *argv[])
vlans[i].valid_mask |= VALID_UNTAG; vlans[i].valid_mask |= VALID_UNTAG;
} }
break; break;
case OPT_EP_LIST:
// list endpoint stuff
list_ep_vlans();
break;
/****************************************************/ /****************************************************/
/* RTU settings */ /* RTU settings */
case OPT_RTU_VID: case OPT_RTU_VID:
...@@ -278,6 +282,7 @@ int print_help(char *prgname) ...@@ -278,6 +282,7 @@ int print_help(char *prgname)
"\t --eprio <priority> sets priority for retagging\n" "\t --eprio <priority> sets priority for retagging\n"
"\t --evid <vid> sets VLAN Id for port\n" "\t --evid <vid> sets VLAN Id for port\n"
"\t --eumask <hex mask> sets untag mask for port\n" "\t --eumask <hex mask> sets untag mask for port\n"
"\t --elist lists current EP configuration\n"
"RTU options:\n" "RTU options:\n"
"\t --rvid <vid> configure VLAN <vid> in rtud\n" "\t --rvid <vid> configure VLAN <vid> in rtud\n"
"\t --del delete selected VLAN from rtud\n" "\t --del delete selected VLAN from rtud\n"
...@@ -413,10 +418,32 @@ void list_rtu_vlans(void) ...@@ -413,10 +418,32 @@ void list_rtu_vlans(void)
printf("\n"); printf("\n");
} }
void list_ep_vlans(void)
{
uint32_t v, r;
int ep;
static char *names[] = {"ACCESS", "TRUNK", "disabled", "unqualified"};
printf("# QMODE FIX_PRIO PRIO PVID MAC\n");
printf("#---------------------------------------------\n");
for (ep = 0; ep < NPORTS; ep++) {
r = offsetof(struct EP_WB, VCR0);
v = ep_read(ep, r);
printf(" %2i %i %6.6s %i %i %4i %04x%08x\n",
ep, v & 3, names[v & 3],
v & EP_VCR0_FIX_PRIO ? 1 : 0,
EP_VCR0_PRIO_VAL_R(v),
EP_VCR0_PVID_R(v),
(int)ep_read(ep, offsetof(struct EP_WB, MACH)),
(int)ep_read(ep, offsetof(struct EP_WB, MACL)));
}
return;
}
int clear_all() int clear_all()
{ {
struct rtu_vlans_t *p; struct rtu_vlans_t *p;
uint32_t v, r; uint32_t r;
int val, i; int val, i;
int ep; int ep;
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#define OPT_EP_VID 12 #define OPT_EP_VID 12
#define OPT_EP_PRIO 13 #define OPT_EP_PRIO 13
#define OPT_EP_UMASK 14 #define OPT_EP_UMASK 14
#define OPT_EP_LIST 15
#define OPT_RTU_VID 20 #define OPT_RTU_VID 20
#define OPT_RTU_FID 21 #define OPT_RTU_FID 21
#define OPT_RTU_PMASK 22 #define OPT_RTU_PMASK 22
...@@ -88,6 +89,7 @@ int clear_all(); ...@@ -88,6 +89,7 @@ int clear_all();
int set_rtu_vlan(int vid, int fid, int pmask, int drop, int prio, int del, int flags); int set_rtu_vlan(int vid, int fid, int pmask, int drop, int prio, int del, int flags);
void free_rtu_vlans(struct rtu_vlans_t *ptr); void free_rtu_vlans(struct rtu_vlans_t *ptr);
void list_rtu_vlans(void); void list_rtu_vlans(void);
void list_ep_vlans(void);
struct rtu_vlans_t* rtu_retrieve_config(void); struct rtu_vlans_t* rtu_retrieve_config(void);
struct rtu_vlans_t* rtu_find_vlan(struct rtu_vlans_t *conf, int vid, int fid); struct rtu_vlans_t* rtu_find_vlan(struct rtu_vlans_t *conf, int vid, int fid);
int config_rtud(void); int config_rtud(void);
......
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