%description: Test channel delay in NED. %file: test.ned channel MyConn extends ned.DatarateChannel { parameters: delay = 0.004s; } simple Node1 { gates: output out; } simple Node2 { gates: input in; } network Test { submodules: node1: Node1; node2: Node2; connections: node1.out --> MyConn --> node2.in; } %file: test.cc #include using namespace omnetpp; namespace @TESTNAME@ { class Node1 : public cSimpleModule { public: Node1() : cSimpleModule(16384) { } virtual void activity() override; }; Define_Module(Node1); void Node1::activity() { for (int i=0; i<100; i++) { cPacket *pkt = new cPacket(); pkt->setBitLength((long)exponential(1000)); // delay should not depend on message length send(pkt, "out"); wait(exponential(1.0)); } } class Node2 : public cSimpleModule { public: Node2() : cSimpleModule(16384) { } virtual void activity() override; }; Define_Module(Node2); void Node2::activity() { for(;;) { cPacket *pkt = check_and_cast(receive()); simtime_t delay = simTime() - pkt->getSendingTime(); EV << "delay=" << delay << ", (diff-0.004)=" << (delay-0.004) << endl; if (delay != 0.004) EV << "wrong delay" << endl; delete pkt; } } }; //namespace %not-contains: stdout wrong delay