What are the access control list options in NetSim? And where is the code for this?

What are the access control list options in NetSim? And where is the code for this?

Users can Permit or Deny traffic based on


1. Direction - Inbound/Outbound

2.Protocol - TCP / UDP/ IGMP / ICMP

3. Source IP Address

4. Destination IP Address

5. Source Port

6. Destination Port

7. Device Interface


The source code is available in firewall.c and briefly


declspec(dllexport) ACL_ACTION fn_NetSim_MAC_Firewall(NETSIM_ID nDeviceId, NETSIM_ID interfaceId, NetSim_PACKET* packet, ACL_TYPE type)

{

 return fn_NetSim_Firewall(nDeviceId, interfaceId, packet, type, true);

}

is called by the MAC Layer


while the code


declspec(dllexport) ACL_ACTION fn_NetSim_NETWORK_Firewall(NETSIM_ID nDeviceId, NETSIM_ID interfaceId, NetSim_PACKET* packet, ACL_TYPE type)

{

 return fn_NetSim_Firewall(nDeviceId, interfaceId, packet, type, false);

}


is called by the network layer


When this function ( fn_NetSim_Firewall() ) is called, it in turns calls


static ACL_ACTION fn_NetSim_Firewall(NETSIM_ID nDeviceId, NETSIM_ID interfaceId, NetSim_PACKET* packet, ACL_TYPE type, bool isMAC)

This function checks all the rules. In this function, ptrACL acl is the access control list structure and it is defined at the beginning of firewall.c