NewInetNetwork.ned.ftl 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <@setoutput path=targetMainFile?default("network.ned")/>
  2. ${bannerComment}
  3. <#if nedPackageName!="">
  4. package ${nedPackageName};
  5. </#if>
  6. <#if ipv4Layer>
  7. <#assign inetX = "inet">
  8. <#assign hostModule = "StandardHost">
  9. <#assign routerModule = "Router">
  10. <#assign configuratorModule = "IPv4NetworkConfigurator">
  11. import inet.networklayer.autorouting.ipv4.${configuratorModule};
  12. </#if>
  13. <#if ipv6Layer>
  14. <#assign inetX = "ipv6">
  15. <#assign hostModule = "StandardHost6">
  16. <#assign routerModule = "Router6">
  17. <#assign configuratorModule = "FlatNetworkConfigurator6">
  18. import inet.networklayer.autorouting.ipv6.${configuratorModule};
  19. </#if>
  20. <#if (numClients?number <= 3) >
  21. <#assign srvXpos = 100>
  22. <#else>
  23. <#assign srvXpos = 10+numClients?number*30>
  24. </#if>
  25. import inet.nodes.${inetX}.${routerModule};
  26. import inet.nodes.${inetX}.${hostModule};
  27. import ned.DatarateChannel;
  28. network ${targetTypeName}
  29. {
  30. types:
  31. channel Channel extends DatarateChannel
  32. {
  33. datarate = 100Mbps;
  34. delay = 0.1us;
  35. }
  36. submodules:
  37. configurator: ${configuratorModule}
  38. {
  39. parameters:
  40. @display("p=40,40");
  41. }
  42. server: ${hostModule}
  43. {
  44. parameters:
  45. @display("p=${srvXpos},40;i=device/pc2");
  46. }
  47. router: ${routerModule}
  48. {
  49. parameters:
  50. @display("p=${srvXpos},100");
  51. }
  52. <#list 1..numClients?number as i>
  53. client${i}: ${hostModule}
  54. {
  55. parameters:
  56. @display("p=${i*60-20},160;i=device/pc3");
  57. }
  58. </#list>
  59. connections:
  60. server.ethg++ <--> Channel <--> router.ethg++;
  61. <#list 1..numClients?number as i>
  62. client${i}.ethg++ <--> Channel <--> router.ethg++;
  63. </#list>
  64. }