Package: inet.routing.pim
PimSplitter
simple modulePimSplitter module dispatches PIM packets received from the network layer according to the PIM mode of the incoming interface. Bu using a PimSplitter it is possible to build nodes that operates in Dense Mode on some interfaces, and in Sparse Mode on others.
See Pim module for example usage.
Used in compound modules
Name | Type | Description |
---|---|---|
Pim | compound module | (no description) |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
interfaceTableModule | string | ||
pimInterfaceTableModule | string |
Properties
Name | Value | Description |
---|---|---|
display | i=block/dispatch |
Gates
Name | Direction | Size | Description |
---|---|---|---|
ipIn | input | ||
ipOut | output | ||
pimDMIn | input | ||
pimDMOut | output | ||
pimSMIn | input | ||
pimSMOut | output |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
ipIn | Packet | 0 | Ipv4 | DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd | |
pimDMIn | Packet | 0 | PimDm | DispatchProtocolInd, DispatchProtocolReq, HopLimitReq, InterfaceReq, L3AddressReq, PacketProtocolTag | |
pimSMIn | Packet | 0 | PimSm | DispatchProtocolReq, HopLimitReq, InterfaceReq, L3AddressReq, PacketProtocolTag, DispatchProtocolInd?, DscpInd?, EcnInd?, HopLimitInd?, InterfaceInd?, L3AddressInd?, MacAddressInd?, NetworkProtocolInd?, TosInd? |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
ipOut | Packet | 0 | Ipv4 | DispatchProtocolReq, HopLimitReq, InterfaceReq, L3AddressReq, PacketProtocolTag, DispatchProtocolInd?, DscpInd?, EcnInd?, HopLimitInd?, InterfaceInd?, L3AddressInd?, MacAddressInd?, NetworkProtocolInd?, TosInd? | |
pimDMOut | Packet | 0 | PimDm | DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd | |
pimSMOut | Packet | 0 | PimSm | DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd |
Packet operations (observed)
chunkType | packetAction |
---|---|
PimPacket | peekAtFront |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTagIfAbsent |
InterfaceInd | getTag |
PacketProtocolTag | getTag |
Source code
// // ~PimSplitter module dispatches PIM packets received from the network layer // according to the PIM mode of the incoming interface. Bu using a ~PimSplitter // it is possible to build nodes that operates in Dense Mode on some interfaces, // and in Sparse Mode on others. // // See ~Pim module for example usage. // simple PimSplitter { parameters: @display("i=block/dispatch"); string interfaceTableModule; string pimInterfaceTableModule; gates: input ipIn; output ipOut; input pimDMIn; output pimDMOut; input pimSMIn; output pimSMOut; }File: src/inet/routing/pim/PimSplitter.ned