18ptrSWITCHTABLE SWITCHTABLE_FIND(ptrETH_LAN lan, PNETSIM_MACADDRESS dest)
20 ptrSWITCHTABLE table = lan->switchTable;
23 if (!MAC_COMPARE(dest, table->mac))
25 SWITCHTABLE_NEXT(table);
30void SWITCHTABLE_NEW(ptrETH_LAN lan, PNETSIM_MACADDRESS dest, NETSIM_ID outport)
34 fnNetSimError(
"Mac address is NULL in function %s\n", __FUNCTION__);
38 ptrSWITCHTABLE table = SWITCHTABLE_FIND(lan, dest);
41 table = SWITCHTABLE_ALLOC();
43 table->outPort = outport;
44 SWITCHTABLE_ADD(&SWITCHTABLE_GET_LAN(lan), table);
48PMETRICSNODE menu = NULL;
50static PMETRICSNODE write_header(
char* name)
53 menu = init_metrics_node(MetricsNode_Menu,
"Switch Mac address table", NULL);
54 PMETRICSNODE submenu = init_metrics_node(MetricsNode_Menu, name, NULL);
55 add_node_to_menu(menu, submenu);
59void switchtable_metrics_print(PMETRICSWRITER metricsWriter)
62 for (i = 0; i < NETWORK->nDeviceCount; i++)
64 PMETRICSNODE submenu = NULL;
65 bool isStarted =
false;
66 ptrETH_VAR eth = GET_ETH_VAR(i + 1);
71 for (j = 0; j < eth->lanCount; j++)
73 ptrETH_LAN lan = eth->lanVar[j];
79 submenu = write_header(DEVICE_NAME(i + 1));
84 sprintf(heading,
"%s_%d", DEVICE_NAME(i + 1), j);
85 PMETRICSNODE table = init_metrics_node(MetricsNode_Table, heading, NULL);
86 add_node_to_menu(submenu, table);
88 add_table_heading_special(table,
"Mac Address#1,Type#1,OutPort#1,");
90 ptrSWITCHTABLE s = lan->switchTable;
94 add_table_row_formatted(
false, table,
"%s,%s,%d,",
105 write_metrics_node(metricsWriter, WriterPosition_Current, NULL, menu);
106 delete_metrics_node(menu);