208 memset(&pevent, 0,
sizeof pevent);
310 for (i = 0; i <
c; i++)
467 memset(&pevent, 0,
sizeof pevent);
494 fnNetSimError(
"ConfigBPDU packet is arrived to device %d interface %d. Spanning tree is not enable.",
524 if (isBlocked ==
BLOCK)
544 sprintf(buf,
"%s%s%s",
548 fp = fopen(buf,
"w");
559 if (!eth || !eth->
isSPT)
579 fprintf(fp,
"%s,%d,%s\n",
int des(char *buf, int *len)
ptrETH_LAN GET_ETH_LAN(NETSIM_ID d, NETSIM_ID i, UINT16 vlanId)
ptrETH_VAR GET_ETH_VAR(NETSIM_ID d)
void set_eth_hdr(NetSim_PACKET *packet, UINT type, void *var, void *(fncopy)(void *), void(*fnfree)(void *))
PNETSIM_MACADDRESS multicastSPTMAC
ptrETH_IF GET_ETH_IF(ptrETH_LAN lan, NETSIM_ID i)
void print_ethernet_log(char *format,...)
void * get_eth_hdr_var(NetSim_PACKET *packet)
NETSIM_ID get_interface_id(NETSIM_ID d, NETSIM_ID c)
#define fnNetSimError(x,...)
static const char pathSeperator[5]
#define fnSystemError(x,...)
NETSIM_ID * get_dest_from_packet(NetSim_PACKET *packet, UINT *count)
void add_dest_to_packet(NetSim_PACKET *packet, NETSIM_ID dest)
static void send_config_bpdu(NETSIM_ID d, UINT lanId, double time)
static ptrETH_BPDU create_bpdu(ptrETH_LAN lan)
void init_spanning_tree_protocol()
bool isSingleInterface(NETSIM_ID d, ptrETH_LAN lan)
static void update_spt(ptrETH_SPT spt, ptrETH_BPDU bpdu, NETSIM_ID port)
static void block_port(NETSIM_ID d, ptrETH_LAN lan, NETSIM_ID in)
static ptrETH_BPDU copy_bpdu(ptrETH_LAN lan, ptrETH_BPDU b)
static void forward_bpdu(NETSIM_ID d, NETSIM_ID inter, double time, ptrETH_LAN lan, ptrETH_BPDU configBPDU)
void print_spanning_tree()
static void mark_port(ptrETH_LAN lan, NETSIM_ID port)
int multicast_config_bpdu()
static void eth_spt_init_port(NETSIM_ID d, UINT lanId)
static void forward_port(NETSIM_ID d, ptrETH_LAN lan, NETSIM_ID in)
static void mark_port_as_nondesignated(ptrETH_LAN lan, NETSIM_ID port)
static char * eth_get_lowest_mac(ptrETH_LAN lan)
static void start_spt_for_lan(NETSIM_ID d, UINT lanId)
static void start_spanning_tree_protocol(NETSIM_ID d)
void process_configbpdu()
static NetSim_PACKET * create_bpdu_packet(NETSIM_ID d, ptrETH_LAN lan, double time)
static COMPARE_BPDU compare_bpdu(ptrETH_BPDU bpdu, ptrETH_SPT spt, NETSIM_ID port)
static NetSim_PACKET * copy_bpdu_packet(NETSIM_ID d, ptrETH_LAN lan, double time, ptrETH_BPDU bpdu)
static void configure_switch_id(ptrETH_LAN lan)
NETSIM_ID fn_NetSim_Stack_GetConnectedDevice(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NETSIM_ID *nConnectedDevId, NETSIM_ID *nConnectedInterfaceId)
#define DEVICE_NAME(DeviceId)
EXPORTED char * pszIOPath
#define DEVICE_TYPE(DeviceId)
#define DEVICE_INTERFACE_CONFIGID(DeviceId, InterfaceId)
EXPORTED struct stru_NetSim_Network * NETWORK
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Packet_CopyPacket(pstruPacket)
#define fn_NetSim_Packet_CreatePacket(layer)
#define fn_NetSim_Packet_FreePacket(pstruPacket)
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
MAC_LAYER_PROTOCOL nMACProtocol
PNETSIM_MACADDRESS szDestMac
char szPacketType[MAX_PACKET_TYPE_LEN]
unsigned int nControlDataType
struct stru_NetSim_Packet_MACLayer * pstruMacData
PNETSIM_MACADDRESS macAddress
SWITCH_PORTSTATE portState
unsigned long long int nmacaddress