Commit 02a7c84a authored by Alessandro Rubini's avatar Alessandro Rubini

tools/wrsw_vlans: remove duplication in IPC calls

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent d9188908
...@@ -331,62 +331,45 @@ int config_rtud(void) ...@@ -331,62 +331,45 @@ int config_rtud(void)
void list_rtu_vlans(void) void list_rtu_vlans(void)
{ {
rtudexp_vd_list_t vlist; struct rtu_vlans_t *p = rtu_retrieve_config();
rtudexp_vd_entry_t *ventry;
int idx = 0, i;
printf(" VID FID MASK DROP PRIO PRIO_OVERRIDE\n"); if (!p)
printf("-----------------------------------------------------------\n"); return;
do {
if (minipc_call(rtud_ch, MINIPC_TIMEOUT, printf("# VID FID MASK DROP PRIO PRIO_OVERRIDE\n");
&rtud_export_get_vd_list, &vlist, idx) < 0) { printf("#----------------------------------------------------------\n");
fprintf(stderr, "%s: minipc_call: %s (%s)\n", prgname, strerror(errno), strerror(*(int *)&vlist));
return; while(p) {
} printf("%4d %4d 0x%08x ", p->vid, p->fid, p->pmask);
for(i=0; i<vlist.num_entries; ++i) { if(p->drop == 0) printf("NO ");
ventry = &vlist.list[i]; else printf("YES");
printf("%4d %4d 0x%08x ", ventry->vid, ventry->fid, ventry->port_mask); if(p->has_prio == 0) printf(" -- ");
if(ventry->drop == 0) printf("NO "); else printf(" %1d ", p->prio);
else printf("YES");
if(ventry->has_prio == 0) printf(" -- "); if(p->prio_override == 0) printf(" NO ");
else printf(" %1d ", ventry->prio); else printf(" YES ");
printf("\n");
if(ventry->prio_override == 0) printf(" NO "); p = p->next;
else printf(" YES "); }
printf("\n");
}
idx = vlist.next;
} while(idx>0);
printf("\n"); printf("\n");
} }
int clear_all() int clear_all()
{ {
rtudexp_vd_list_t vlist; struct rtu_vlans_t *p = rtu_retrieve_config();
rtudexp_vd_entry_t *ventry; int val;
int idx = 0, i, val;
while (p) {
do { if(p->vid != 0)
if (minipc_call(rtud_ch, MINIPC_TIMEOUT, minipc_call(rtud_ch, MINIPC_TIMEOUT,
&rtud_export_get_vd_list, &vlist, idx) < 0) { &rtud_export_vlan_entry, &val, p->vid,
/* Duplicated from above */ p->fid, 0, 1, 0, 0, 0);
fprintf(stderr, "%s: minipc_call: %s\n", prgname, strerror(errno)); else
fprintf(stderr, "%s: minipc_call: %s (%s)\n", prgname, strerror(errno), strerror(*(int *)&vlist)); minipc_call(rtud_ch, MINIPC_TIMEOUT,
return -1; &rtud_export_vlan_entry, &val, 0,
} 0, 0xffffffff, 0, 0, 0, 0);
p = p->next;
/*remove vlans from the list*/ }
for(i=0; i<vlist.num_entries; ++i) {
ventry = &vlist.list[i];
if(ventry->vid != 0)
minipc_call(rtud_ch, MINIPC_TIMEOUT, &rtud_export_vlan_entry, &val, ventry->vid,
ventry->fid, 0, 1, 0, 0, 0);
else
minipc_call(rtud_ch, MINIPC_TIMEOUT, &rtud_export_vlan_entry, &val, 0, 0,
0xffffffff, 0, 0, 0, 0);
}
idx = vlist.next;
} while(idx>0);
/*TODO: cancel tagging/untagging in all endpoints*/ /*TODO: cancel tagging/untagging in all endpoints*/
......
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