%description: Testing DHCP protocol %#-------------------------------------------------------------------------------------------------------------- %file: test.ned import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator; import inet.node.ethernet.EtherSwitch; import inet.node.inet.StandardHost; import inet.common.misc.ThruputMeteringChannel; network DhcpExample { parameters: int numHosts; types: channel ethernetline extends ThruputMeteringChannel { delay = 0.1us; datarate = 10Mbps; thruputDisplayFormat = "u"; } submodules: srv: StandardHost; switch: EtherSwitch { parameters: @display("p=186,250"); } cli[numHosts]: StandardHost; configurator: IPv4NetworkConfigurator { parameters: config = xml(""); } connections: srv.ethg++ <--> ethernetline <--> switch.ethg++; for i=0..numHosts-1 { cli[i].ethg++ <--> ethernetline <--> switch.ethg++; } } %#-------------------------------------------------------------------------------------------------------------- %inifile: omnetpp.ini [General] tkenv-plugin-path = ../../../etc/plugins ned-path = .;../../../../src;../../lib cmdenv-express-mode = false sim-time-limit = 1000s record-eventlog = true #omnetpp 5.0 - 5.1 compatibility: eventlog-file = "${resultdir}/${configname}-${runnumber}.elog" output-scalar-file = "${resultdir}/${configname}-${runnumber}.sca" output-vector-file = "${resultdir}/${configname}-${runnumber}.vec" snapshot-file = "${resultdir}/${configname}-${runnumber}.sna" network = DhcpExample *.numHosts = 10 **.numUdpApps = 1 **.cli[*].udpApp[0].typename = "DHCPClient" **.cli[*].udpApp[0].interface="eth0" # interface toward dhcp server **.srv.udpApp[0].typename = "DHCPServer" **.srv.udpApp[0].numReservedAddresses = 100 # ip to start to lease **.srv.udpApp[0].maxNumClients = 100 # number of ip to lease **.srv.udpApp[0].dns = "" # dns to assign **.srv.udpApp[0].leaseTime = 1000s # lease time in seconds **.srv.udpApp[0].interface="eth0" # interface to listen %#-------------------------------------------------------------------------------------------------------------- %#-------------------------------------------------------------------------------------------------------------- %contains-regex: stdout .* The requested IP 192\.168\.1\.100/255\.255\.255\.0 is available. Assigning it to cli\[0\]. .* The requested IP 192\.168\.1\.101/255\.255\.255\.0 is available. Assigning it to cli\[1\]. .* The requested IP 192\.168\.1\.102/255\.255\.255\.0 is available. Assigning it to cli\[2\]. .* The requested IP 192\.168\.1\.103/255\.255\.255\.0 is available. Assigning it to cli\[3\]. .* The requested IP 192\.168\.1\.104/255\.255\.255\.0 is available. Assigning it to cli\[4\]. .* The requested IP 192\.168\.1\.105/255\.255\.255\.0 is available. Assigning it to cli\[5\]. .* The requested IP 192\.168\.1\.106/255\.255\.255\.0 is available. Assigning it to cli\[6\]. .* The requested IP 192\.168\.1\.107/255\.255\.255\.0 is available. Assigning it to cli\[7\]. .* The requested IP 192\.168\.1\.108/255\.255\.255\.0 is available. Assigning it to cli\[8\]. .* The requested IP 192\.168\.1\.109/255\.255\.255\.0 is available. Assigning it to cli\[9\]. .* %#-------------------------------------------------------------------------------------------------------------- %not-contains: stdout undisposed object: %not-contains: stdout -- check module destructor %#--------------------------------------------------------------------------------------------------------------