Go to the source code of this file.
|
| #define | _NETSIM_IGMP_H_ |
| |
| #define | IGMP_ROBUSTNESS_VARIABLE_DEFAULT 2 |
| |
| #define | IGMP_QUERY_INTERVAL_DEFAULT 125 |
| |
| #define | IGMP_QUERY_RESPONSE_INTERVAL_DEFAULT 100 |
| |
| #define | IGMP_GROUP_MEMBERSHIP_INTERVAL_DEFAULT |
| |
| #define | IGMP_QUERIER_PRESENT_INTERVAL_DEFAULT |
| |
| #define | IGMP_STARTUP_QUERY_INTERVAL_DEFAULT (1/4.0*IGMP_QUERY_INTERVAL_DEFAULT) |
| |
| #define | IGMP_STARTUP_QUERY_COUNT_DEFAULT IGMP_ROBUSTNESS_VARIABLE_DEFAULT |
| |
| #define | IGMP_LAST_MEMBER_QUERY_INTERVAL_DEFAULT 10 |
| |
| #define | IGMP_LAST_MEMBER_QUERY_COUNT_DEFAULT IGMP_ROBUSTNESS_VARIABLE_DEFAULT |
| |
| #define | IGMP_UNSOLICITED_REPORT_INTERVAL_DEFAULT (10) |
| |
| #define | IGMP_STARTUP_DELAY 1*MILLISECOND |
| |
| #define | isBroadcastInterface(d, i) (DEVICE_INTERFACE(d,i)->nInterfaceType != INTERFACE_WAN_ROUTER) |
| |
| #define | isIGMPPacket(packet) (packet->nControlDataType / 100 == NW_PROTOCOL_IPV4 && packet->nControlDataType % 100 >= 30 && packet->nControlDataType % 100 < 40) |
| |
| #define | IGMP_HDR_SIZE 8 |
| |
| #define | IGMP_HOST_DB_ALLOC() (ptrIGMP_HOST_DB)list_alloc(sizeof(IGMP_HOST_DB),offsetof(IGMP_HOST_DB,ele)) |
| |
| #define | IGMP_HOST_DB_ADD(d, db) LIST_ADD_LAST((void**)&GET_IGMP_HOST(d)->database,db) |
| |
| #define | IGMP_ROUTER_DB_ALLOC() (ptrIGMP_ROUTER_DB)list_alloc(sizeof(IGMP_ROUTER_DB),offsetof(IGMP_ROUTER_DB,ele)) |
| |
| #define | IGMP_ROUTER_DB_ADD(d, db) LIST_ADD_LAST((void**)&GET_IGMP_ROUTER(d)->database,db) |
| |
| #define | GET_IGMP_VAR(d) ((ptrIGMP_VAR)GET_IP_DEVVAR(d)->igmp) |
| |
| #define | SET_IGMP_VAR(d, var) (GET_IP_DEVVAR(d)->igmp = (void*)var) |
| |
| #define | isIPHOST(d) (GET_IGMP_VAR(d)->devType == IP_HOST) |
| |
| #define | isIPRouter(d) (GET_IGMP_VAR(d)->devType == IP_ROUTER) |
| |
| #define | GET_IGMP_HOST(d) ((ptrIGMP_HOST)(GET_IGMP_VAR(d)->DEV.host)) |
| |
| #define | GET_IGMP_ROUTER(d) ((ptrIGMP_ROUTER)(GET_IGMP_VAR(d)->DEV.router)) |
| |
| #define | SET_IGMP_HOST(d, var) (GET_IGMP_VAR(d)->DEV.host = var) |
| |
| #define | SET_IGMP_ROUTER(d, var) (GET_IGMP_VAR(d)->DEV.router = var) |
| |
|
| void | igmp_router_init (NETSIM_ID d) |
| |
| ptrIGMP_ROUTER_DB | find_or_alloc_multicast_db_router (NETSIM_IPAddress addr, NETSIM_ID d, bool *isAlreadyJoined) |
| |
| ptrIGMP_ROUTER_DB | router_get_multicast_db (NETSIM_ID d, NETSIM_IPAddress ip) |
| |
| bool | router_process_report (NetSim_PACKET *packet, ptrIGMP_MSG msg, NETSIM_ID d) |
| |
| bool | router_process_query (NetSim_PACKET *packet, ptrIGMP_MSG msg, NETSIM_ID d) |
| |
| void | router_free (NETSIM_ID d) |
| |
| void | igmp_host_init (NETSIM_ID d) |
| |
| ptrIGMP_HOST_DB | host_get_multicast_db (NETSIM_ID d, NETSIM_IPAddress addr) |
| |
| bool | host_process_report (NetSim_PACKET *packet, ptrIGMP_MSG msg, NETSIM_ID d) |
| |
| bool | host_process_query (NetSim_PACKET *packet, ptrIGMP_MSG msg, NETSIM_ID d) |
| |
| void | host_free (NETSIM_ID d) |
| |
| void | send_membership_report (NETSIM_ID d, NETSIM_IPAddress group) |
| |
| void | print_igmp_log (char *format,...) |
| |
| void | igmp_start_timer (NETSIM_ID d, IP_SUBEVENT sev, NETSIM_IPAddress addr, double time) |
| |
◆ _NETSIM_IGMP_H_
◆ GET_IGMP_HOST
◆ GET_IGMP_ROUTER
◆ GET_IGMP_VAR
◆ IGMP_GROUP_MEMBERSHIP_INTERVAL_DEFAULT
| #define IGMP_GROUP_MEMBERSHIP_INTERVAL_DEFAULT |
Value:
#define IGMP_QUERY_INTERVAL_DEFAULT
#define IGMP_QUERY_RESPONSE_INTERVAL_DEFAULT
#define IGMP_ROBUSTNESS_VARIABLE_DEFAULT
Definition at line 37 of file IGMP.h.
◆ IGMP_HDR_SIZE
◆ IGMP_HOST_DB_ADD
◆ IGMP_HOST_DB_ALLOC
◆ IGMP_LAST_MEMBER_QUERY_COUNT_DEFAULT
◆ IGMP_LAST_MEMBER_QUERY_INTERVAL_DEFAULT
| #define IGMP_LAST_MEMBER_QUERY_INTERVAL_DEFAULT 10 |
◆ IGMP_QUERIER_PRESENT_INTERVAL_DEFAULT
| #define IGMP_QUERIER_PRESENT_INTERVAL_DEFAULT |
Value:
Definition at line 39 of file IGMP.h.
◆ IGMP_QUERY_INTERVAL_DEFAULT
| #define IGMP_QUERY_INTERVAL_DEFAULT 125 |
◆ IGMP_QUERY_RESPONSE_INTERVAL_DEFAULT
| #define IGMP_QUERY_RESPONSE_INTERVAL_DEFAULT 100 |
◆ IGMP_ROBUSTNESS_VARIABLE_DEFAULT
| #define IGMP_ROBUSTNESS_VARIABLE_DEFAULT 2 |
◆ IGMP_ROUTER_DB_ADD
◆ IGMP_ROUTER_DB_ALLOC
◆ IGMP_STARTUP_DELAY
◆ IGMP_STARTUP_QUERY_COUNT_DEFAULT
◆ IGMP_STARTUP_QUERY_INTERVAL_DEFAULT
◆ IGMP_UNSOLICITED_REPORT_INTERVAL_DEFAULT
| #define IGMP_UNSOLICITED_REPORT_INTERVAL_DEFAULT (10) |
◆ isBroadcastInterface
◆ isIGMPPacket
| #define isIGMPPacket |
( |
|
packet | ) |
(packet->nControlDataType / 100 == NW_PROTOCOL_IPV4 && packet->nControlDataType % 100 >= 30 && packet->nControlDataType % 100 < 40) |
◆ isIPHOST
◆ isIPRouter
◆ SET_IGMP_HOST
| #define SET_IGMP_HOST |
( |
|
d, |
|
|
|
var |
|
) |
| (GET_IGMP_VAR(d)->DEV.host = var) |
◆ SET_IGMP_ROUTER
| #define SET_IGMP_ROUTER |
( |
|
d, |
|
|
|
var |
|
) |
| (GET_IGMP_VAR(d)->DEV.router = var) |
◆ SET_IGMP_VAR
| #define SET_IGMP_VAR |
( |
|
d, |
|
|
|
var |
|
) |
| (GET_IP_DEVVAR(d)->igmp = (void*)var) |
◆ IGMP_HOST
◆ IGMP_HOST_DB
◆ IGMP_MSG
◆ IGMP_ROUTER
◆ IGMP_ROUTER_DB
◆ IGMP_VAR
◆ ptrIGMP_HOST
◆ ptrIGMP_HOST_DB
◆ ptrIGMP_MSG
◆ ptrIGMP_ROUTER
◆ ptrIGMP_ROUTER_DB
◆ ptrIGMP_VAR
◆ DEV_TYPE
| Enumerator |
|---|
| IP_HOST | |
| IP_ROUTER | |
Definition at line 51 of file IGMP.h.
◆ IGMP_HOST_STATE
| Enumerator |
|---|
| HostState_NonMember | |
| HostState_IdleMember | |
| HostState_DelayingMember | |
Definition at line 84 of file IGMP.h.
◆ IGMP_ROUTER_STATE
| Enumerator |
|---|
| RouterState_Querier | |
| RouterState_NonQuerier | |
Definition at line 110 of file IGMP.h.
◆ IGMPMSG_TYPE
| Enumerator |
|---|
| IGMPMSG_MembershipQuery | |
| IGMPMSG_V2MembershipReport | |
| IGMPMSG_LeaveGroup | |
| IGMPMSG_V1MembershipReport | |
Definition at line 57 of file IGMP.h.
◆ find_or_alloc_multicast_db_router()
◆ host_free()
◆ host_get_multicast_db()
◆ host_process_query()
◆ host_process_report()
◆ igmp_host_init()
◆ igmp_router_init()
◆ igmp_start_timer()
◆ print_igmp_log()
| void print_igmp_log |
( |
char * |
format, |
|
|
|
... |
|
) |
| |
◆ router_free()
◆ router_get_multicast_db()
◆ router_process_query()
◆ router_process_report()
◆ send_membership_report()