Ipv4NodeConfigurator¶
Package: inet.networklayer.configurator.ipv4
simple module Ipv4NodeConfigurator
Configures the containing network node using information provided by the network’s global configurator modue Ipv4NetworkConfigurator.
Ipv4NetworkConfigurator only computes and remembers configuration data (assigned IP addresses, static routes, etc), but doesn’t configure the nodes’ routing tables and interfaces accordingly. The actual configuration is carried out by this module, at network initialization time and also when the node restarts (i.e. after a shutdown or a crash.)
This module is needed because of failure/restart scenarios: Ipv4NetworkConfigurator would not be able to configure the node after a restart, because being a global module, it doesn’t know about node lifecycle events.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
Provides a network layer that connects the simulation to a real network on the host computer using a TUN device. Allows simulated applications to send and receive packets through the host’s networking stack at the IP layer. Contains standard components like routing table and ARP, and uses ExtUpperIpv4 with a TUN device for external connectivity. |
|
compound module |
Network layer of an IPv4 node. |
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for all INET simple modules. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
interfaceTableModule |
string |
The path to the InterfaceTable module |
|
routingTableModule |
string |
||
networkConfiguratorModule |
string |
“configurator” |
The absolute path to the Ipv4NetworkConfigurator; use “” if there is no configurator |
configureRoutingTable |
bool |
true |
Add routing entries to the routing table (uses the configurator module) |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
Ipv4NodeConfigurator |
|
display |
i=block/cogwheel |
Source code¶
//
// Configures the containing network node using information provided by
// the network's global configurator modue ~Ipv4NetworkConfigurator.
//
// ~Ipv4NetworkConfigurator only computes and remembers configuration data
// (assigned IP addresses, static routes, etc), but doesn't configure the nodes'
// routing tables and interfaces accordingly. The actual configuration is
// carried out by this module, at network initialization time and also when
// the node restarts (i.e. after a shutdown or a crash.)
//
// This module is needed because of failure/restart scenarios:
// ~Ipv4NetworkConfigurator would not be able to configure the node after
// a restart, because being a global module, it doesn't know about node
// lifecycle events.
//
simple Ipv4NodeConfigurator extends SimpleModule like IIpv4NodeConfigurator
{
parameters:
@class(Ipv4NodeConfigurator);
string interfaceTableModule; // The path to the InterfaceTable module
string routingTableModule;
// TODO eventually rename to networkConfigurator
string networkConfiguratorModule = default("configurator"); // The absolute path to the Ipv4NetworkConfigurator; use "" if there is no configurator
bool configureRoutingTable = default(true); // Add routing entries to the routing table (uses the configurator module)
@display("i=block/cogwheel");
}
File: src/inet/networklayer/configurator/ipv4/Ipv4NodeConfigurator.ned