Routing tables made visible
Any large network model has routing tables and other internal data structures which had been hard to monitor during simulation -- most of the time you had to print their contents periodically to be able to see what was going on. OMNeT++3.0 will help this. It will make it easy to get std::vectors, structs, vectors of structs and other data displayed in Tkenv.
The following screenshot was made with the development versions of IPSuite and OMNeT++.
Three of the four tables used std::vectors. LIBTable and TED were structs stored in std::vectors:
struct lib_type {..}; std::vector<lib_type> lib;
And all code necessary to get them displayed into Tkenv was writing an operator<< function which can write the struct on an std::ostream and adding the WATCH_vector(lib) line into initialize(). <PRE>std::ostream& operator<<(std::ostream& os, const lib_type& lib) {
os << “InL:” << lib.inLabel;
os << “ InIf:” << lib.inInterface.c_str();
os << “ OutL:” << lib.outLabel;
os << “ OutIf:” << lib.outInterface.c_str();
os << “ Optcode:” << lib.optcode;
return os;
}
</PRE><PRE>WATCH_vector(lib);</PRE>
The syntax may change, but the idea remains: your tables will be easy to get watched.