NetSim Source Code Help
Loading...
Searching...
No Matches
IP.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ForwardRoute
 
struct  stru_NetSim_IPRoutingTable
 Structure to store ip routing table. More...
 
struct  stru_IP_DevVar
 Structure to store the device ip details. More...
 
struct  stru_IP_Metrics
 Structure to store the IP metrics. More...
 
struct  stru_dnsList
 Data structure for dns. More...
 

Macros

#define IP_IGMP_STATUS_DEFAULT   false
 
#define IP_PIM_STATUS_DEFAULT   false
 
#define IP_ICMP_STATUS_DEFAULT   false
 
#define IP_STATIC_IP_ROUTE_DEFAULT   _strdup("")
 
#define IP_PROCESSING_DELAY_DEFAULT   0
 
#define on_link   NULL
 
#define DEFAULT_METRIC   999
 
#define ONLINK_METRIC   300
 
#define MULTICAST_METRIC   306
 
#define IPV4_HEADER_SIZE   20
 
#define PROTOCOL_VPN   1
 
#define VPN_METRIC   200
 
#define GET_IP_DEVVAR(d)   (DEVICE_NWLAYER(d)?(IP_DEVVAR*)(DEVICE_NWLAYER(d)->ipVar):NULL)
 
#define isPIMPacket(packet)   (packet->pstruNetworkData->IPProtocol == IPPROTOCOL_PIM)
 
#define DNS_ALLOC()   (struct stru_dnsList*)list_alloc(sizeof(struct stru_dnsList),offsetof(struct stru_dnsList,ele))
 
#define IPROUTINGTABLE_ALLOC()   (ptrIP_ROUTINGTABLE)list_alloc(sizeof(IP_ROUTINGTABLE),offsetof(IP_ROUTINGTABLE,ele))
 
#define IPROUTINGTABLE_ADD(table, current, fun)   list_add(((void**)(table)),current,offsetof(IP_ROUTINGTABLE,ele),fun)
 

Typedefs

typedef struct stru_IP_DevVar IP_DEVVAR
 
typedef struct ForwardRoute IP_FORWARD_ROUTE
 
typedef struct ForwardRouteptrIP_FORWARD_ROUTE
 
typedef struct stru_NetSim_IPRoutingTable IP_ROUTINGTABLE
 Structure to store ip routing table. More...
 
typedef struct stru_NetSim_IPRoutingTableptrIP_ROUTINGTABLE
 
typedef struct stru_NetSim_IPRoutingTable ** pptrIP_ROUTINGTABLE
 
typedef struct stru_dnsList DNS
 Data structure for dns. More...
 

Enumerations

enum  ROUTING_TYPE { RoutingType_string , RoutingType_DEFAULT =1 , RoutingType_STATIC }
 Enumeration for routing types. More...
 
enum  IP_CONTROL_PACKET {
  PACKET_ICMP_DstUnreachableMsg =NW_PROTOCOL_IPV4*100+10 , PACKET_ICMP_ECHORequest , PACKET_ICMP_ECHOReply , PACKET_ROUTER_ADVERTISEMENT ,
  PACKET_VPN = NW_PROTOCOL_IPV4*100+20 , PACKET_IGMP_QUERY = NW_PROTOCOL_IPV4*100+30 , PACKET_IGMP_REPORT , PACKET_IGMP_LEAVE ,
  PACKET_PIM_HELLO = NW_PROTOCOL_IPV4*100+40 , PACKET_PIM_REGISTER , PACKET_PIM_REGISTERSTOP , PACKET_PIM_JOINPRUNE ,
  PACKET_PIM_BOOTSTRAP , PACKET_PIM_ASSERT , PACKET_PIM_GRAFT , PACKET_PIM_GRAFTACK ,
  PACKET_PIM_CANDRPADVER
}
 Enumeration for IP control packets. More...
 
enum  IP_SUBEVENT {
  EVENT_ICMP_POLL =NW_PROTOCOL_IPV4*100+1 , EVENT_ADVERTISE_ROUTER , EVENT_IGMP_Unsolicited_report , EVENT_IGMP_SendStartupQuery ,
  EVENT_IGMP_SendQuery , EVENT_IGMP_OtherQuerierPresentTimer , EVENT_IGMP_DelayTimer , EVENT_IGMP_GroupMembershipTimer ,
  EVENT_PIM_SEND_HELLO , EVENT_PIM_NEIGHBOR_TIMEOUT , EVENT_PIM_JT , EVENT_PIM_ET ,
  EVENT_IP_INIT_TABLE , EVENT_ICMP_SEND_ECHO , EVENT_IP_PROCESSING_DELAY
}
 Enumeration for ip sub-events. More...
 
enum  IP_GATEWAYSTATE { GATEWAYSTATE_UP , GATEWAYSTATE_DOWN , GATEWAYSTATE_NOTIFICATION_PENDING , GATEWAYSTATE_CLEARANCE_PENDING }
 Enumeration for IP gateway states. More...
 
enum  VPN_STATE { VPN_DISABLE =0 , VPN_SERVER , VPN_CLIENT }
 Enumeration for VPN states. More...
 
enum  IP_PROTOCOL_ACTION { ACTION_DROP , ACTION_MOVEUP , ACTION_REROUTE }
 

Functions

void free_ip_route (ptrIP_FORWARD_ROUTE route)
 
int iptable_add_check (ptrIP_ROUTINGTABLE current, ptrIP_ROUTINGTABLE mem)
 
ptrIP_ROUTINGTABLE iptable_check (ptrIP_ROUTINGTABLE *table, NETSIM_IPAddress dest, NETSIM_IPAddress subnet)
 
int iptable_change (ptrIP_WRAPPER wrapper, NETSIM_IPAddress dest, NETSIM_IPAddress subnet, UINT prefix_len, NETSIM_IPAddress gateway, UINT interfaceCount, NETSIM_IPAddress *interfaceIp, NETSIM_ID *interfaceId, unsigned int metric)
 
int iptable_change_byRoute (ptrIP_WRAPPER wrapper, ptrIP_ROUTINGTABLE route, NETSIM_IPAddress subnet, unsigned int prefix_len, NETSIM_IPAddress gateway, UINT interfaceCount, NETSIM_IPAddress *interfaceIp, NETSIM_ID *interfaceId, unsigned int metric)
 
int iptable_delete (ptrIP_WRAPPER wrapper, NETSIM_IPAddress dest, NETSIM_IPAddress in, char *type)
 
int iptable_delete_by_type (ptrIP_WRAPPER wrapper, char *type)
 
int iptable_delete_by_route (ptrIP_WRAPPER wrapper, ptrIP_ROUTINGTABLE route)
 
ptrIP_ROUTINGTABLE iptable_add (ptrIP_WRAPPER wrapper, NETSIM_IPAddress dest, NETSIM_IPAddress subnet, unsigned int prefix_len, NETSIM_IPAddress gateway, UINT interfaceCount, NETSIM_IPAddress *interfaceIp, NETSIM_ID *interfaceId, unsigned int metric, char *type)
 
int iptable_print (FILE *fp, ptrIP_ROUTINGTABLE routeTable)
 
ptrIP_ROUTINGTABLEiptable_get_table_by_type (ptrIP_ROUTINGTABLE table, char *type, UINT *count)
 
NETSIM_IPAddress dns_query (NETSIM_ID nDeviceId, NETSIM_ID id)
 
int fn_NetSim_IP_VPN_Run ()
 
ptrIP_FORWARD_ROUTE fn_NetSim_IP_RoutePacket (NetSim_PACKET *packet, NETSIM_ID dev)
 
ptrIP_FORWARD_ROUTE fn_NetSim_IP_RoutePacketViaStaticEntry (NetSim_PACKET *packet, NETSIM_ID dev)
 
void pass_to_lower_layer (NetSim_PACKET *packet, ptrIP_FORWARD_ROUTE route, UINT c)
 
int fn_NetSim_NAT_NetworkOut (NETSIM_ID ndev, NetSim_PACKET *packet)
 
int fn_NetSim_NAT_NetworkIn (NETSIM_ID ndev, NetSim_PACKET *packet)
 
void ICMP_copyPacket (NetSim_PACKET *d, NetSim_PACKET *s)
 
void process_icmp_packet ()
 
int ICMP_CHECKSTATE (NETSIM_IPAddress ip)
 
void multicast_join_group ()
 
IP_PROTOCOL_ACTION check_ip_in_multicastgroup (NETSIM_IPAddress ip, NETSIM_ID d, NetSim_PACKET *packet)
 
bool is_reserved_multicast_address (NETSIM_IPAddress ip)
 
bool isCorrectRoute (pptrIP_ROUTINGTABLE table, NETSIM_IPAddress dest, NETSIM_IPAddress src)
 
void igmp_configure (NETSIM_ID d, void *xmlNode)
 
void igmp_init (NETSIM_ID d)
 
void igmp_host_join_group (NETSIM_ID d, NETSIM_IPAddress group)
 
void host_handle_unsolicited_report_timer ()
 
void process_igmp_packet ()
 
void IGMP_FreePacket (NetSim_PACKET *packet)
 
IP_PROTOCOL_ACTION host_is_ip_present_in_db (NETSIM_ID d, NETSIM_IPAddress ip, NetSim_PACKET *packet)
 
IP_PROTOCOL_ACTION router_is_ip_present_in_db (NETSIM_ID d, NETSIM_IPAddress ip, NetSim_PACKET *packet)
 
void send_query_msg (NETSIM_ID d, NETSIM_IPAddress groupAddr, double time)
 
void igmp_router_processOtherQuerierPresentTime ()
 
void host_send_report ()
 
void igmp_router_ProcessGroupMembershipTimer ()
 
void copy_igmp_packet (NetSim_PACKET *d, NetSim_PACKET *s)
 
void igmp_free (NETSIM_ID d)
 
void pim_configure (NETSIM_ID d, void *xmlNetSimNode)
 
void Router_PIM_Init (NETSIM_ID d)
 
void pim_handle_timer_event ()
 
void pim_join_group (NETSIM_ID d, NETSIM_IPAddress group)
 
IP_PROTOCOL_ACTION pim_decide_action (NetSim_PACKET *packet, NETSIM_ID d)
 
void process_pim_packet ()
 
void ip_write_to_pcap (NetSim_PACKET *packet, NETSIM_ID d, NETSIM_ID i, double time)
 
void * ICMP_StartPingRequest (NETSIM_ID src, NETSIM_ID dest, UINT count, bool(*resp)(void *, char *, bool), void *arg)
 
void icmp_send_echo_request ()
 

Variables

struct stru_IP_Metrics ** ipMetrics
 

Macro Definition Documentation

◆ DEFAULT_METRIC

#define DEFAULT_METRIC   999

Definition at line 42 of file IP.h.

◆ DNS_ALLOC

#define DNS_ALLOC ( )    (struct stru_dnsList*)list_alloc(sizeof(struct stru_dnsList),offsetof(struct stru_dnsList,ele))

Definition at line 299 of file IP.h.

◆ GET_IP_DEVVAR

#define GET_IP_DEVVAR (   d)    (DEVICE_NWLAYER(d)?(IP_DEVVAR*)(DEVICE_NWLAYER(d)->ipVar):NULL)

Definition at line 49 of file IP.h.

◆ IP_ICMP_STATUS_DEFAULT

#define IP_ICMP_STATUS_DEFAULT   false

Definition at line 37 of file IP.h.

◆ IP_IGMP_STATUS_DEFAULT

#define IP_IGMP_STATUS_DEFAULT   false

Definition at line 35 of file IP.h.

◆ IP_PIM_STATUS_DEFAULT

#define IP_PIM_STATUS_DEFAULT   false

Definition at line 36 of file IP.h.

◆ IP_PROCESSING_DELAY_DEFAULT

#define IP_PROCESSING_DELAY_DEFAULT   0

Definition at line 39 of file IP.h.

◆ IP_STATIC_IP_ROUTE_DEFAULT

#define IP_STATIC_IP_ROUTE_DEFAULT   _strdup("")

Definition at line 38 of file IP.h.

◆ IPROUTINGTABLE_ADD

#define IPROUTINGTABLE_ADD (   table,
  current,
  fun 
)    list_add(((void**)(table)),current,offsetof(IP_ROUTINGTABLE,ele),fun)

Definition at line 302 of file IP.h.

◆ IPROUTINGTABLE_ALLOC

#define IPROUTINGTABLE_ALLOC ( )    (ptrIP_ROUTINGTABLE)list_alloc(sizeof(IP_ROUTINGTABLE),offsetof(IP_ROUTINGTABLE,ele))

Definition at line 301 of file IP.h.

◆ IPV4_HEADER_SIZE

#define IPV4_HEADER_SIZE   20

Definition at line 45 of file IP.h.

◆ isPIMPacket

#define isPIMPacket (   packet)    (packet->pstruNetworkData->IPProtocol == IPPROTOCOL_PIM)

Definition at line 88 of file IP.h.

◆ MULTICAST_METRIC

#define MULTICAST_METRIC   306

Definition at line 44 of file IP.h.

◆ on_link

#define on_link   NULL

Definition at line 41 of file IP.h.

◆ ONLINK_METRIC

#define ONLINK_METRIC   300

Definition at line 43 of file IP.h.

◆ PROTOCOL_VPN

#define PROTOCOL_VPN   1

Definition at line 46 of file IP.h.

◆ VPN_METRIC

#define VPN_METRIC   200

Definition at line 47 of file IP.h.

Typedef Documentation

◆ DNS

typedef struct stru_dnsList DNS

Data structure for dns.

◆ IP_DEVVAR

typedef struct stru_IP_DevVar IP_DEVVAR

Definition at line 51 of file IP.h.

◆ IP_FORWARD_ROUTE

◆ IP_ROUTINGTABLE

Structure to store ip routing table.

◆ pptrIP_ROUTINGTABLE

◆ ptrIP_FORWARD_ROUTE

◆ ptrIP_ROUTINGTABLE

Enumeration Type Documentation

◆ IP_CONTROL_PACKET

Enumeration for IP control packets.

Enumerator
PACKET_ICMP_DstUnreachableMsg 
PACKET_ICMP_ECHORequest 
PACKET_ICMP_ECHOReply 
PACKET_ROUTER_ADVERTISEMENT 
PACKET_VPN 
PACKET_IGMP_QUERY 
PACKET_IGMP_REPORT 
PACKET_IGMP_LEAVE 
PACKET_PIM_HELLO 
PACKET_PIM_REGISTER 
PACKET_PIM_REGISTERSTOP 
PACKET_PIM_JOINPRUNE 
PACKET_PIM_BOOTSTRAP 
PACKET_PIM_ASSERT 
PACKET_PIM_GRAFT 
PACKET_PIM_GRAFTACK 
PACKET_PIM_CANDRPADVER 

Definition at line 61 of file IP.h.

◆ IP_GATEWAYSTATE

Enumeration for IP gateway states.

Enumerator
GATEWAYSTATE_UP 
GATEWAYSTATE_DOWN 
GATEWAYSTATE_NOTIFICATION_PENDING 
GATEWAYSTATE_CLEARANCE_PENDING 

Definition at line 122 of file IP.h.

◆ IP_PROTOCOL_ACTION

Enumerator
ACTION_DROP 
ACTION_MOVEUP 
ACTION_REROUTE 

Definition at line 137 of file IP.h.

◆ IP_SUBEVENT

Enumeration for ip sub-events.

Enumerator
EVENT_ICMP_POLL 
EVENT_ADVERTISE_ROUTER 
EVENT_IGMP_Unsolicited_report 
EVENT_IGMP_SendStartupQuery 
EVENT_IGMP_SendQuery 
EVENT_IGMP_OtherQuerierPresentTimer 
EVENT_IGMP_DelayTimer 
EVENT_IGMP_GroupMembershipTimer 
EVENT_PIM_SEND_HELLO 
EVENT_PIM_NEIGHBOR_TIMEOUT 
EVENT_PIM_JT 
EVENT_PIM_ET 
EVENT_IP_INIT_TABLE 
EVENT_ICMP_SEND_ECHO 
EVENT_IP_PROCESSING_DELAY 

Definition at line 91 of file IP.h.

◆ ROUTING_TYPE

Enumeration for routing types.

Enumerator
RoutingType_string 
RoutingType_DEFAULT 
RoutingType_STATIC 

Definition at line 53 of file IP.h.

◆ VPN_STATE

enum VPN_STATE

Enumeration for VPN states.

Enumerator
VPN_DISABLE 
VPN_SERVER 
VPN_CLIENT 

Definition at line 130 of file IP.h.

Function Documentation

◆ check_ip_in_multicastgroup()

IP_PROTOCOL_ACTION check_ip_in_multicastgroup ( NETSIM_IPAddress  ip,
NETSIM_ID  d,
NetSim_PACKET packet 
)

Definition at line 60 of file Component 3/IP/Multicast.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_igmp_packet()

void copy_igmp_packet ( NetSim_PACKET d,
NetSim_PACKET s 
)

Definition at line 77 of file IGMP_Msg.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dns_query()

NETSIM_IPAddress dns_query ( NETSIM_ID  nDeviceId,
NETSIM_ID  id 
)

The DOMAIN NAME SPACE and RESOURCE RECORDS, which are specifications for a tree structured name space and data associated with the names. Conceptually, each node and leaf of the domain name space tree names a set of information, and query operations are attempts to extract specific types of information from a particular set. A query names the domain name of interest and describes the type of resource information that is desired. For example, the Internet uses some of its domain names to identify hosts; queries for address resources return Internet host addresses.

Definition at line 42 of file DNS.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fn_NetSim_IP_RoutePacket()

ptrIP_FORWARD_ROUTE fn_NetSim_IP_RoutePacket ( NetSim_PACKET packet,
NETSIM_ID  dev 
)

Definition at line 371 of file IP_Routing.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fn_NetSim_IP_RoutePacketViaStaticEntry()

ptrIP_FORWARD_ROUTE fn_NetSim_IP_RoutePacketViaStaticEntry ( NetSim_PACKET packet,
NETSIM_ID  dev 
)

Definition at line 558 of file IP_Routing.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fn_NetSim_IP_VPN_Run()

int fn_NetSim_IP_VPN_Run ( )

This function is to trigger the events of VPN, which includes NETWORK_OUT and NETWORK_IN events.

Definition at line 212 of file VPN.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fn_NetSim_NAT_NetworkIn()

int fn_NetSim_NAT_NetworkIn ( NETSIM_ID  ndev,
NetSim_PACKET packet 
)

Definition at line 116 of file NAT.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fn_NetSim_NAT_NetworkOut()

int fn_NetSim_NAT_NetworkOut ( NETSIM_ID  ndev,
NetSim_PACKET packet 
)

Definition at line 47 of file NAT.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ free_ip_route()

void free_ip_route ( ptrIP_FORWARD_ROUTE  route)

Definition at line 157 of file IP_Routing.c.

Here is the caller graph for this function:

◆ host_handle_unsolicited_report_timer()

void host_handle_unsolicited_report_timer ( )

Definition at line 183 of file IGMP_Host.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ host_is_ip_present_in_db()

IP_PROTOCOL_ACTION host_is_ip_present_in_db ( NETSIM_ID  d,
NETSIM_IPAddress  ip,
NetSim_PACKET packet 
)

Definition at line 69 of file IGMP_Host.c.

Here is the caller graph for this function:

◆ host_send_report()

void host_send_report ( )

Definition at line 119 of file IGMP_Host.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ICMP_CHECKSTATE()

int ICMP_CHECKSTATE ( NETSIM_IPAddress  ip)
Here is the caller graph for this function:

◆ ICMP_copyPacket()

void ICMP_copyPacket ( NetSim_PACKET d,
NetSim_PACKET s 
)

Definition at line 518 of file ICMP.c.

Here is the caller graph for this function:

◆ icmp_send_echo_request()

void icmp_send_echo_request ( )

Definition at line 668 of file ICMP.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ICMP_StartPingRequest()

void * ICMP_StartPingRequest ( NETSIM_ID  src,
NETSIM_ID  dest,
UINT  count,
bool(*)(void *, char *, bool)  resp,
void *  arg 
)
Here is the caller graph for this function:

◆ igmp_configure()

void igmp_configure ( NETSIM_ID  d,
void *  xmlNode 
)

Definition at line 43 of file IGMP.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ igmp_free()

void igmp_free ( NETSIM_ID  d)

Definition at line 164 of file IGMP.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IGMP_FreePacket()

void IGMP_FreePacket ( NetSim_PACKET packet)

Definition at line 81 of file IGMP_Msg.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ igmp_host_join_group()

void igmp_host_join_group ( NETSIM_ID  d,
NETSIM_IPAddress  group 
)

Definition at line 159 of file IGMP_Host.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ igmp_init()

void igmp_init ( NETSIM_ID  d)

Definition at line 141 of file IGMP.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ igmp_router_ProcessGroupMembershipTimer()

void igmp_router_ProcessGroupMembershipTimer ( )

Definition at line 307 of file IGMP_Router.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ igmp_router_processOtherQuerierPresentTime()

void igmp_router_processOtherQuerierPresentTime ( )

Definition at line 239 of file IGMP_Router.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ip_write_to_pcap()

void ip_write_to_pcap ( NetSim_PACKET packet,
NETSIM_ID  d,
NETSIM_ID  i,
double  time 
)

Definition at line 1476 of file IP.c.

Here is the caller graph for this function:

◆ iptable_add()

ptrIP_ROUTINGTABLE iptable_add ( ptrIP_WRAPPER  wrapper,
NETSIM_IPAddress  dest,
NETSIM_IPAddress  subnet,
unsigned int  prefix_len,
NETSIM_IPAddress  gateway,
UINT  interfaceCount,
NETSIM_IPAddress interfaceIp,
NETSIM_ID interfaceId,
unsigned int  metric,
char *  type 
)
Here is the caller graph for this function:

◆ iptable_add_check()

int iptable_add_check ( ptrIP_ROUTINGTABLE  current,
ptrIP_ROUTINGTABLE  mem 
)

◆ iptable_change()

int iptable_change ( ptrIP_WRAPPER  wrapper,
NETSIM_IPAddress  dest,
NETSIM_IPAddress  subnet,
UINT  prefix_len,
NETSIM_IPAddress  gateway,
UINT  interfaceCount,
NETSIM_IPAddress interfaceIp,
NETSIM_ID interfaceId,
unsigned int  metric 
)
Here is the caller graph for this function:

◆ iptable_change_byRoute()

int iptable_change_byRoute ( ptrIP_WRAPPER  wrapper,
ptrIP_ROUTINGTABLE  route,
NETSIM_IPAddress  subnet,
unsigned int  prefix_len,
NETSIM_IPAddress  gateway,
UINT  interfaceCount,
NETSIM_IPAddress interfaceIp,
NETSIM_ID interfaceId,
unsigned int  metric 
)

◆ iptable_check()

ptrIP_ROUTINGTABLE iptable_check ( ptrIP_ROUTINGTABLE table,
NETSIM_IPAddress  dest,
NETSIM_IPAddress  subnet 
)
Here is the caller graph for this function:

◆ iptable_delete()

int iptable_delete ( ptrIP_WRAPPER  wrapper,
NETSIM_IPAddress  dest,
NETSIM_IPAddress  in,
char *  type 
)
Here is the caller graph for this function:

◆ iptable_delete_by_route()

int iptable_delete_by_route ( ptrIP_WRAPPER  wrapper,
ptrIP_ROUTINGTABLE  route 
)
Here is the caller graph for this function:

◆ iptable_delete_by_type()

int iptable_delete_by_type ( ptrIP_WRAPPER  wrapper,
char *  type 
)
Here is the caller graph for this function:

◆ iptable_get_table_by_type()

ptrIP_ROUTINGTABLE * iptable_get_table_by_type ( ptrIP_ROUTINGTABLE  table,
char *  type,
UINT count 
)
Here is the caller graph for this function:

◆ iptable_print()

int iptable_print ( FILE *  fp,
ptrIP_ROUTINGTABLE  routeTable 
)

◆ is_reserved_multicast_address()

bool is_reserved_multicast_address ( NETSIM_IPAddress  ip)

Definition at line 87 of file Component 3/IP/Multicast.c.

Here is the caller graph for this function:

◆ isCorrectRoute()

bool isCorrectRoute ( pptrIP_ROUTINGTABLE  table,
NETSIM_IPAddress  dest,
NETSIM_IPAddress  src 
)

Definition at line 154 of file Component 3/IP/Multicast.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multicast_join_group()

void multicast_join_group ( )

Definition at line 26 of file Component 3/IP/Multicast.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pass_to_lower_layer()

void pass_to_lower_layer ( NetSim_PACKET packet,
ptrIP_FORWARD_ROUTE  route,
UINT  c 
)

Definition at line 568 of file IP_Routing.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pim_configure()

void pim_configure ( NETSIM_ID  d,
void *  xmlNetSimNode 
)

Definition at line 107 of file PIM_SM.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pim_decide_action()

IP_PROTOCOL_ACTION pim_decide_action ( NetSim_PACKET packet,
NETSIM_ID  d 
)

Definition at line 139 of file PIM_SM.c.

Here is the caller graph for this function:

◆ pim_handle_timer_event()

void pim_handle_timer_event ( )

Definition at line 187 of file PIM_SM.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pim_join_group()

void pim_join_group ( NETSIM_ID  d,
NETSIM_IPAddress  group 
)

Definition at line 228 of file PIM_SM.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_icmp_packet()

void process_icmp_packet ( )

Definition at line 533 of file ICMP.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_igmp_packet()

void process_igmp_packet ( )

Definition at line 195 of file IGMP_Msg.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_pim_packet()

void process_pim_packet ( )

Definition at line 149 of file PIM_SM.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ router_is_ip_present_in_db()

IP_PROTOCOL_ACTION router_is_ip_present_in_db ( NETSIM_ID  d,
NETSIM_IPAddress  ip,
NetSim_PACKET packet 
)

Definition at line 180 of file IGMP_Router.c.

Here is the call graph for this function:

◆ Router_PIM_Init()

void Router_PIM_Init ( NETSIM_ID  d)

Definition at line 67 of file PIM_SM.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_query_msg()

void send_query_msg ( NETSIM_ID  d,
NETSIM_IPAddress  groupAddr,
double  time 
)

Definition at line 233 of file IGMP_Msg.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ ipMetrics

struct stru_IP_Metrics** ipMetrics

Definition at line 291 of file IP.h.