Package: simu5g.stack.ip2nic
Ip2Nic
simple moduleBridges the IP network layer and the cellular protocol stack, handling bidirectional packet flow. Extracts flow information from IP headers and attaches it as control tags for the stack. In base stations, determines the destination user equipment from IP addresses.
A packet whose UE is attached with neither of its stacks is dropped here. Which stack carries a flow follows from the UE's attachment: outside dual connectivity a UE is attached with at most one stack, and under dual connectivity the two stacks are the legs of one bearer, so the choice is made per PDU, further down, by the bearer's leg splitter (see DcPdcpLegSplitter).
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
| Name | Type | Description |
|---|---|---|
| Ip2NicD2D | simple module |
Device-to-Device (D2D) aware version of Ip2Nic. It overrides the packet analysis and next-hop resolution with the D2D-capable behavior: IP-multicast becomes a D2D_MULTI flow with a group-id assignment, unicast destinations get a D2D peer lookup, and the next hop is routed directly to the peer when the peering is in Direct Mode (DM). Selected by the D2D-capable NICs. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| nodeType | string | ||
| binderModule | string | "binder" | |
| bearerConfiguratorModule | string | "bearerConfigurator" | |
| isNr | bool | false |
True for the NR leg (set by NrNicUe/NrNicEnb, or in the ini for a DC master eNB) |
| hasSdap | bool | false |
When true, SDAP handles DRB/RLC assignment; Ip2Nic skips traffic classification |
| establishBearersOnDemand | bool | true |
When false, a packet that finds no established bearer raises an error instead of establishing one (static bearers are established up front; see the staticDrbs parameter of BearerConfigurator) |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/layer |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| upperLayerIn | input |
Connection to network layer |
|
| upperLayerOut | output | ||
| stackIn | input |
Connection to the cellular stack |
|
| stackOut | output |
Source code
// // Bridges the IP network layer and the cellular protocol stack, handling bidirectional packet flow. // Extracts flow information from IP headers and attaches it as control tags for the stack. // In base stations, determines the destination user equipment from IP addresses. // // A packet whose UE is attached with neither of its stacks is dropped here. Which stack // carries a flow follows from the UE's attachment: outside dual connectivity a UE is // attached with at most one stack, and under dual connectivity the two stacks are the // legs of one bearer, so the choice is made per PDU, further down, by the bearer's leg // splitter (see ~DcPdcpLegSplitter). // simple Ip2Nic like INetworkLayer2CellularNic { parameters: string nodeType; string binderModule = default("binder"); string bearerConfiguratorModule = default("bearerConfigurator"); bool isNr = default(false); // True for the NR leg (set by NrNicUe/NrNicEnb, or in the ini for a DC master eNB) bool hasSdap = default(false); // When true, SDAP handles DRB/RLC assignment; Ip2Nic skips traffic classification bool establishBearersOnDemand = default(true); // When false, a packet that finds no established bearer raises an error instead of establishing one (static bearers are established up front; see the staticDrbs parameter of ~BearerConfigurator) @display("i=block/layer"); gates: // Connection to network layer input upperLayerIn; output upperLayerOut; // Connection to the cellular stack input stackIn; output stackOut; }File: src/simu5g/stack/ip2nic/Ip2Nic.ned