48 inet::UdpSocket socket_;
52 inet::ModuleRefByPar<Binder> binder_;
55 unsigned int tunnelPeerPort_;
59 std::map<Teid, TunnelSession> rxTunnels_;
63 std::map<MacNodeId, std::map<MacNodeId, Teid>> forwardingTeids_;
71 Direction direction = DL;
73 std::map<Teid, DcTunnel> dcRxTunnels_;
74 std::map<std::tuple<MacNodeId, DrbId, Direction>, Teid> dcTxTeids_;
78 int numInitStages()
const override {
return inet::NUM_INIT_STAGES; }
79 void initialize(
int stage)
override;
80 void handleMessage(inet::cMessage *msg)
override;
83 void handleFromStack(inet::Packet *x2Msg);
86 void handleFromUdp(inet::Packet *gtpMsg);
89 virtual Teid getForwardingTeid(
const SessionTag *session, MacNodeId targetBs);
97 virtual void addTunnel(Teid teid,
const SessionRef& session, SessionType type);
100 virtual void setForwardingTeid(
const SessionRef& session, MacNodeId bsId, Teid teid);
103 virtual void removeSession(
const SessionRef& session);
108 virtual void addDcTunnel(Teid teid, MacNodeId ueNodeId, DrbId drbId, Direction direction);
112 virtual void setDcTunnelTeid(MacNodeId ueLteId, MacNodeId ueNrId, DrbId drbId, Direction direction, Teid teid);