Skip to main content

· 3 min read

These slides are digested and organized from this mail, which was posted in NEMO group:

Edouard LASNIER REDDAN, Telecom Solution for Telematics, RENAULT, on May 2nd, 2005

Keyword: MIPv6, Tunnel, NAT mapping

Quote: MIPv6 with a NAT traversal feature is urgent. The HA should Independent from telecom operators.

  • RENAULT is involved in several research projects dealing with IP mobility since 2001
  • RENAULT Laguna "IPv6 Car", supporting Mobile IPv6. Received the "Murai Award" in 2003 in Tokyo Capability to support GPRS (2G European cellular network) / Wifi vertical handover ** Using Mobile IPv6 with IPv4 NAT traversal feature

DOORS:

  • The NAT traversal function,
  • Developed by Cisco Systems
  • Provide efficient results
  • Compatible with our deployment constraints for further commercial exploitations.

Mobile IPv6

  • Is considered by the car manufacturers as a key technology for Deployment of next generation Telematic services * Remote diagnosis *** Fleet management

GST

  • Global System for Telematics RENAULT, BMW, DAIMLER CHRYSLER,FIAT Other actors of the Telematic Industry
  • IPv6 is now part of the core specification for a European standard for telematics, mainly because of its mobility features.

Challenges for the car manufacturers

  • Be deployed soon on top of existing cellular networks, all based on IPv4.
  • It is mandatory to deploy Mobile IPv6 with a NAT traversal support, to remain independent from the mobile telecom operator.

Note: If it is agreed by the automotive industry that IPv6 paves the future of the telematic market, the existing constraints on the deployment of Mobile IPv6 makes the finalization of the standard very sensitive:

Note: If the car manufacturers have to setup technical agreements with the mobile telecom operators to deploy MIPv6, then many other solutions can be considered. Dependence toward the mobile telecom operators is not acceptable.

Note: MIPv6 should enable the actors of the value chain to define their business model, it means that MIPv6 should be flexible and not compel the Home Agent to be directly connected to the Internet.

NAT traversal

  • NAT traversal is a required feature
  • Technical solution defined at the IETF should take into consideration the deployment constraints.
  • The Home Agent is in many cases in existing small networks dedicated to pilot experiments initially designed for IPv4, with NAT boxes on the Internet interface.

** This constraint is a fact, and is valid for many projects.

Long term perspective: HA consideration

  • Car manufacturers - or any actors from the telematic industry supplying IP mobility support for the cars
  • Will deploy MIPv6 on their enterprise networks.
  • Those networks are secured, designed for IPv4, and most probably the Home Agent will not be directly interfaced with the Internet
  • It will be a secured equipment in the core of the network, behind NATs.

Note: This problem is in fact very common as enterprise networks are connected to the Internet behind NATs in general.

Multiple IPv4 Network Address Translation

  • Mobile IPv6 should support it
  • In the access networks, and in front of the Home network.
  • The Home Agent may be deployed on IPv4 networks behind NAT access to the Internet.

Conclution: If the deployment of Mobile IPv6 requires re-designing the car manufacturers networks because security policies and existing NAT features are not supported, then Mobile IPv6 will remain a beautiful idea that no company will be able to deploy. I could deploy MIPv6 for real if the IPv4 NAT traversal would be normalized and enable Home Agent to be connected to the internet behind NATs and other boxes.

· 2 min read

修改模組就是由實際 class, procedure 到目標理想 class, procedure 的過程. 在動手修改模組之前必定先規劃好目標系統.

使用類似重構的開發方法,一次只做一點點的改動,

make (nmake) 的特性是只重編改動到的檔案,因此如果你一次只改動一兩個檔案, 並用上一個還行的 CPU (~1G), 就不用擔心重新編譯所需時間過長的問題.

每次作改動的時候將之清楚紀錄下來,這樣多作幾次下來的結果就會越來越熟悉,考慮的越來越完整,每步的幅度就越來越精準.

當 然,你對模擬工具組成架構越清楚,在模擬工具程式架構清楚的情況下,你的目標理想 class, procedure 可能就會越接近實際 class, procedure. 為了修改模組順暢,適當參考相關模擬程式提供的架構是必要的。不然會遇到規劃出來的目標架構無法從模擬程式順利修改的窘境.

OMNeT++ 比起 NS2 很大的優勢就在此, 感謝 Andras 開發的 IPv6SuiteWithINET 模組,讓我們可以用很接近實作的 Code 來模擬. 另一個例子是 S. Dulman 開發的 NesCT, 可以用此模組在 OMNeT++ 上跑 TinyOS 程式.

· 2 min read

Q: INET framework without dynamic nedfile

A: Easiest way to switch from dynamic NED to compiled-in NED for INET is to remove the "-N" flag from OPTS at the top of the makemake script, then regenerate the makefiles (./makemake) and make. (And of course remove preload-ned-files lines from omnetpp.ini's.)

Q:I'll use an example from Omnet Documentation:

module RoutingTestNetwork
parameters:
routingNodeType: string; // should hold the name
// of an existing module type
gates: //...
submodules:
node1: routingNodeType like RoutingNode;
node2: routingNodeType like RoutingNode;
//...
connections nocheck:
node1.out0 --> node2.in0;
//...
endmodule

What happens if I declare a routingNodeType in omnet.ini file which would be different from that declared in my .ned file? e.g. omnetpp.ini: *.node.routingNodeType = "Routingsomething"

Or perhaps I have to define this module in RoutingNode.ned and add some parameters in Routingsomething.ned if I want.

A:The setting in the NED file, if present, takes precedence over omnetpp.ini (basically, omnetpp.ini is only consulted if param is not set in the NED).

The module Routingsomething MUST have at least the parameters and gates RoutingNode has, but it can add new ones as well.

Q:I wish to create shared libs in each of the subdirectories then link them to an executable for each of the networks like the old IPv6Suite.

A: we haven't actually had this option available for the IPv6SuiteWithINET.

Currently, all c++ objects are statically linked into bin/INET. A batch file is provided in each network directory to run the executable, bin/INET and load omnetpp.ini (or -f <your_own_network_ini>) in the current network directory. (Eric)

Q:</your_own_network_ini> I've installed TCL/TK but while executing make command, it can't found them <your_own_network_ini>A:</your_own_network_ini> Go to the installing directory and edit configure.user. Specifiy the path to the TCL/TK header files. On my mashine tcl.h and tk.h are in /usr/include/:

TK_CFLAGS="-I/usr/include/tcl8

4 -fwritable-strings" TK_LIBS="-L/usr/lib -ltk8.4 -ltcl8.4"

You should change the compiler flags if you want to debug your sessions:

CFLAGS='-gstabs+3 -Wall'