Skip to Content.
Sympa Menu

ndt-dev - [ndt-dev] [ndt] r713 committed - Separate the utility subcomponents from the test subcomponents

Subject: NDT-DEV email list created

List archive

[ndt-dev] [ndt] r713 committed - Separate the utility subcomponents from the test subcomponents


Chronological Thread 
  • From:
  • To:
  • Subject: [ndt-dev] [ndt] r713 committed - Separate the utility subcomponents from the test subcomponents
  • Date: Tue, 11 Oct 2011 19:57:02 +0000

Revision: 713
Author:

Date: Tue Oct 11 12:56:02 2011
Log: Separate the utility subcomponents from the test subcomponents
http://code.google.com/p/ndt/source/detail?r=713

Modified:
/wiki/NDTArchitecture.wiki

=======================================
--- /wiki/NDTArchitecture.wiki Tue Oct 11 12:43:32 2011
+++ /wiki/NDTArchitecture.wiki Tue Oct 11 12:56:02 2011
@@ -101,16 +101,8 @@

A description of each of the NDT subcomponents can be found in the following table. All source files are located in the *src* directory under the root of the checked out sources from the code repository.

-|| *Subcomponent* || *Used by* || *Description* || *Functions* || *Sources* ||
-|| logging || web100srv<br/>web100clt || Logging subcomponent that is responsible for printing informational messages on to the console. It can filter messages according to the currently set debug level. Moreover, this subcomponent is also responsible for dates/timestamps handling. || {{{void }}}*log_init*{{{(char* progname, int debuglvl)}}}<br/>{{{void }}}*set_debuglvl*{{{(int debuglvl)}}}<br/>{{{void }}}*set_logfile*{{{(char* filename)}}}<br/>{{{int }}}*get_debuglvl*{{{()}}}<br/>{{{char* }}}*get_logfile*{{{()}}}<br/>{{{I2ErrHandle }}}*get_errhandle*{{{()}}}<br/>{{{void }}}*log_print*{{{(int lvl, const char* format, ...)}}}<br/>{{{void }}}*log_println*{{{(int lvl, const char* format, ...)}}}<br/>{{{void }}}*log_free*{{{(void)}}}<br/>{{{void }}}*set_timestamp*{{{()}}}<br/>{{{char* }}}*get_ISOtime*{{{(char * isoTime)}}}<br/>{{{void }}}*get_YYYY*{{{(char * year)}}}<br/>{{{void }}}*get_MM*{{{(char * month)}}}<br/>{{{void }}}*get_DD*{{{(char * day)}}} | | {{{logging.c logging.h}}} ||
-|| network || web100srv<br/>web100clt || Subcomponent that is responsible for all network operations. || {{{I2Addr }}}*!CreateListenSocket*{{{(I2Addr addr, char* serv, int options, int buf_size)}}}<br/>{{{int }}}*!CreateConnectSocket*{{{(int* sockfd, I2Addr local_addr, I2Addr server_addr, int option, int buf_sizes)}}}<br/>{{{int }}}*send_msg*{{{(int ctlSocket, int type, void* msg, int len)}}}<br/>{{{int }}}*recv_msg*{{{(int ctlSocket, int* type, void* msg, int* len)}}}<br/>{{{int }}}*writen*{{{(int fd, void* buf, int amount)}}}<br/>{{{int }}}*readn*{{{(int fd, void* buf, int amount)}}} || {{{network.c network.h}}} ||
-|| protocol || web100srv<br/>web100clt || Functions to support [NDTProtocol NDT Protocol]. || {{{int }}}*check_msg_type*{{{(char* prefix, int expected, int received, char* buff, int len)}}} || {{{protocol.c protocol.h}}} ||
-|| utils || web100srv<br/>web100clt || Functions to handle numbers sanity checks and some other utility things. || {{{int }}}*check_int*{{{(char* text, int* number)}}}<br/>{{{int }}}*check_rint*{{{(char* text, int* number, int minVal, int maxVal)}}}<br/>{{{int }}}*check_long*{{{(char* text, long* number)}}}<br/>{{{double }}}*secs*{{{()}}}<br/>{{{void }}}*err_sys*{{{(char* s)}}}<br/>{{{int }}}*sndq_len*{{{(int fd)}}}<br/>{{{void }}}*mysleep*{{{(double time)}}} || utils.c utils.h ||
-|| Web100 support || web100srv || Functions needed to read the Web100 variables. || {{{void }}}*get_iflist*{{{(void)}}}<br/>{{{int }}}*web100_init*{{{(char *VarFileName)}}}<br/>{{{int }}}*web100_autotune*{{{(int sock, web100_agent* agent, web100_connection* cn)}}}<br/>{{{void }}}*web100_middlebox*{{{(int sock, web100_agent* agent, web100_connection* cn, char *results)}}}<br/>{{{int }}}*web100_setbuff*{{{(int sock, web100_agent* agent, web100_connection* cn, int autotune)}}}<br/>{{{void }}}*web100_get_data_recv*{{{(int sock, web100_agent* agent, web100_connection* cn, int count_vars)}}}<br/>{{{int }}}*web100_get_data*{{{(web100_snapshot* snap, int ctlsock, web100_agent* agent, int count_vars)}}}<br/>{{{int }}}*!CwndDecrease*{{{(web100_agent* agent, char* logname, int *dec_cnt, int *same_cnt, int *inc_cnt)}}}<br/>{{{int }}}*web100_logvars*{{{(int *Timeouts, int *SumRTT, int *CountRTT, int *PktsRetrans, int *FastRetran, int *DataPktsOut, int *AckPktsOut, int *CurrentMSS, int *DupAcksIn, int *AckPktsIn, int *MaxRwinRcvd, int *Sndbuf, int *CurrentCwnd, int *SndLimTimeRwin, int *SndLimTimeCwnd, int *SndLimTimeSender, int *DataBytesOut, int *SndLimTransRwin, int *SndLimTransCwnd, int *SndLimTransSender, int *MaxSsthresh, int *CurrentRTO, int *CurrentRwinRcvd, int *MaxCwnd, int *CongestionSignals, int *PktsOut, int *MinRTT, int count_vars, int *RcvWinScale, int *SndWinScale, int *CongAvoid, int *CongestionOverCount, int *MaxRTT, int *OtherReductions, int *CurTimeoutCount, int *AbruptTimeouts, int *SendStall, int *SlowStart, int *SubsequentTimeouts, int *ThruBytesAcked)}}} || {{{web100-util.c web100srv.h}}} ||
-|| pcap support || web100srv || Functions that use pcap library in the bottleneck detection algorithm. || {{{void }}}*init_pkttrace*{{{(I2Addr srcAddr, struct sockaddr *sock_addr, socklen_t saddrlen, int monitor_pipe[2], char *device, PortPair* pair, char * direction, int compress)}}}<br/>{{{int }}}*check_signal_flags*{{{()}}} || {{{web100-pcap.c web100srv.h}}} ||
-|| admin page || web100srv || Functions needed to handle the Admin page, which allows a remote user to view the usage statistics via a web page. || {{{void }}}*view_init*{{{(int refresh)}}}<br/>{{{int }}}*calculate*{{{(char now[32], int SumRTT, int CountRTT, int CongestionSignals, int PktsOut, int DupAcksIn, int AckPktsIn, int CurrentMSS, int SndLimTimeRwin, int SndLimTimeCwnd, int SndLimTimeSender, int MaxRwinRcvd, int CurrentCwnd, int Sndbuf, int DataBytesOut, int mismatch, int bad_cable, int c2sspd, int s2cspd, int c2sdata, int s2cack, int view_flag)}}}<br/>{{{void }}}*gen_html*{{{(int c2sspd, int s2cspd, int MinRTT, int PktsRetrans, int Timeouts, int Sndbuf, int MaxRwinRcvd, int CurrentCwnd, int mismatch, int bad_cable, int totalcnt, int refresh)}}} || {{{web100-admin.c web100-admin.h}}} ||
-|| mrange || web100srv || Functions to handle port number ranges. This means that the numbers generated by these methods are always between 1 and 65535 inclusive. || {{{int }}}*mrange_parse*{{{(char* text)}}}<br/>{{{char* }}}*mrange_next*{{{(char* port)}}} || {{{mrange.c mrange.h}}} ||
-|| || || || || ||
+===== Test Subcomponents =====
+|| *Subcomponent* || *Used by* || *Description* || *API* || *Sources* ||
|| SFW Test (C) || web100clt || The client part of the Simple Firewall Test || {{{int }}}*test_sfw_clt*{{{(int ctlsockfd, char tests, char* host, int conn_options)}}}<br/>{{{int }}}*results_sfw*{{{(char tests, char* host)}}} || {{{test_sfw_clt.c test_sfw.h}}} ||
|| SFW Test (S) || web100srv || The server part of the Simple Firewall Test || {{{int }}}*test_sfw_srv*{{{(int ctlsockfd, web100_agent* agent, TestOptions* options, int conn_options)}}} || {{{test_sfw_srv.c test_sfw.h testoptions.h}}} ||
|| MID Test (C) || web100clt || The client part of the Middlebox Test || {{{int }}}*test_mid_clt*{{{(int ctlSocket, char tests, char* host, int conn_options, int buf_size, char* tmpstr2)}}} || {{{test_mid_clt.c clt_tests.h}}} ||
@@ -122,7 +114,17 @@
|| META Test (C) || web100clt || The client part of the META Test || {{{int }}}*test_meta_clt*{{{(int ctlSocket, char tests, char* host, int conn_options)}}} || {{{test_meta_clt.c test_meta.h}}} ||
|| META Test (S) || web100srv || The server part of the META Test || {{{int }}}*test_meta_srv*{{{(int ctlsockfd, web100_agent* agent, TestOptions* testOptions, int conn_options)}}} || {{{test_meta_srv.c test_meta.h testoptions.h}}} ||

-Some of the above subcomponents depend on other of the above subcomponents. The test subcomponents dependencies were included in the diagrams above. The non-test subcomponent dependencies are listed in the diagram below.
+===== Utility Subcomponents =====
+|| logging || web100srv<br/>web100clt || Logging subcomponent that is responsible for printing informational messages on to the console. It can filter messages according to the currently set debug level. Moreover, this subcomponent is also responsible for dates/timestamps handling. || {{{void }}}*log_init*{{{(char* progname, int debuglvl)}}}<br/>{{{void }}}*set_debuglvl*{{{(int debuglvl)}}}<br/>{{{void }}}*set_logfile*{{{(char* filename)}}}<br/>{{{int }}}*get_debuglvl*{{{()}}}<br/>{{{char* }}}*get_logfile*{{{()}}}<br/>{{{I2ErrHandle }}}*get_errhandle*{{{()}}}<br/>{{{void }}}*log_print*{{{(int lvl, const char* format, ...)}}}<br/>{{{void }}}*log_println*{{{(int lvl, const char* format, ...)}}}<br/>{{{void }}}*log_free*{{{(void)}}}<br/>{{{void }}}*set_timestamp*{{{()}}}<br/>{{{char* }}}*get_ISOtime*{{{(char * isoTime)}}}<br/>{{{void }}}*get_YYYY*{{{(char * year)}}}<br/>{{{void }}}*get_MM*{{{(char * month)}}}<br/>{{{void }}}*get_DD*{{{(char * day)}}} | | {{{logging.c logging.h}}} ||
+|| network || web100srv<br/>web100clt || Subcomponent that is responsible for all network operations. || {{{I2Addr }}}*!CreateListenSocket*{{{(I2Addr addr, char* serv, int options, int buf_size)}}}<br/>{{{int }}}*!CreateConnectSocket*{{{(int* sockfd, I2Addr local_addr, I2Addr server_addr, int option, int buf_sizes)}}}<br/>{{{int }}}*send_msg*{{{(int ctlSocket, int type, void* msg, int len)}}}<br/>{{{int }}}*recv_msg*{{{(int ctlSocket, int* type, void* msg, int* len)}}}<br/>{{{int }}}*writen*{{{(int fd, void* buf, int amount)}}}<br/>{{{int }}}*readn*{{{(int fd, void* buf, int amount)}}} || {{{network.c network.h}}} ||
+|| protocol || web100srv<br/>web100clt || Functions to support [NDTProtocol NDT Protocol]. || {{{int }}}*check_msg_type*{{{(char* prefix, int expected, int received, char* buff, int len)}}} || {{{protocol.c protocol.h}}} ||
+|| utils || web100srv<br/>web100clt || Functions to handle numbers sanity checks and some other utility things. || {{{int }}}*check_int*{{{(char* text, int* number)}}}<br/>{{{int }}}*check_rint*{{{(char* text, int* number, int minVal, int maxVal)}}}<br/>{{{int }}}*check_long*{{{(char* text, long* number)}}}<br/>{{{double }}}*secs*{{{()}}}<br/>{{{void }}}*err_sys*{{{(char* s)}}}<br/>{{{int }}}*sndq_len*{{{(int fd)}}}<br/>{{{void }}}*mysleep*{{{(double time)}}} || utils.c utils.h ||
+|| Web100 support || web100srv || Functions needed to read the Web100 variables. || {{{void }}}*get_iflist*{{{(void)}}}<br/>{{{int }}}*web100_init*{{{(char *VarFileName)}}}<br/>{{{int }}}*web100_autotune*{{{(int sock, web100_agent* agent, web100_connection* cn)}}}<br/>{{{void }}}*web100_middlebox*{{{(int sock, web100_agent* agent, web100_connection* cn, char *results)}}}<br/>{{{int }}}*web100_setbuff*{{{(int sock, web100_agent* agent, web100_connection* cn, int autotune)}}}<br/>{{{void }}}*web100_get_data_recv*{{{(int sock, web100_agent* agent, web100_connection* cn, int count_vars)}}}<br/>{{{int }}}*web100_get_data*{{{(web100_snapshot* snap, int ctlsock, web100_agent* agent, int count_vars)}}}<br/>{{{int }}}*!CwndDecrease*{{{(web100_agent* agent, char* logname, int *dec_cnt, int *same_cnt, int *inc_cnt)}}}<br/>{{{int }}}*web100_logvars*{{{(int *Timeouts, int *SumRTT, int *CountRTT, int *PktsRetrans, int *FastRetran, int *DataPktsOut, int *AckPktsOut, int *CurrentMSS, int *DupAcksIn, int *AckPktsIn, int *MaxRwinRcvd, int *Sndbuf, int *CurrentCwnd, int *SndLimTimeRwin, int *SndLimTimeCwnd, int *SndLimTimeSender, int *DataBytesOut, int *SndLimTransRwin, int *SndLimTransCwnd, int *SndLimTransSender, int *MaxSsthresh, int *CurrentRTO, int *CurrentRwinRcvd, int *MaxCwnd, int *CongestionSignals, int *PktsOut, int *MinRTT, int count_vars, int *RcvWinScale, int *SndWinScale, int *CongAvoid, int *CongestionOverCount, int *MaxRTT, int *OtherReductions, int *CurTimeoutCount, int *AbruptTimeouts, int *SendStall, int *SlowStart, int *SubsequentTimeouts, int *ThruBytesAcked)}}} || {{{web100-util.c web100srv.h}}} ||
+|| pcap support || web100srv || Functions that use pcap library in the bottleneck detection algorithm. || {{{void }}}*init_pkttrace*{{{(I2Addr srcAddr, struct sockaddr *sock_addr, socklen_t saddrlen, int monitor_pipe[2], char *device, PortPair* pair, char * direction, int compress)}}}<br/>{{{int }}}*check_signal_flags*{{{()}}} || {{{web100-pcap.c web100srv.h}}} ||
+|| admin page || web100srv || Functions needed to handle the Admin page, which allows a remote user to view the usage statistics via a web page. || {{{void }}}*view_init*{{{(int refresh)}}}<br/>{{{int }}}*calculate*{{{(char now[32], int SumRTT, int CountRTT, int CongestionSignals, int PktsOut, int DupAcksIn, int AckPktsIn, int CurrentMSS, int SndLimTimeRwin, int SndLimTimeCwnd, int SndLimTimeSender, int MaxRwinRcvd, int CurrentCwnd, int Sndbuf, int DataBytesOut, int mismatch, int bad_cable, int c2sspd, int s2cspd, int c2sdata, int s2cack, int view_flag)}}}<br/>{{{void }}}*gen_html*{{{(int c2sspd, int s2cspd, int MinRTT, int PktsRetrans, int Timeouts, int Sndbuf, int MaxRwinRcvd, int CurrentCwnd, int mismatch, int bad_cable, int totalcnt, int refresh)}}} || {{{web100-admin.c web100-admin.h}}} ||
+|| mrange || web100srv || Functions to handle port number ranges. This means that the numbers generated by these methods are always between 1 and 65535 inclusive. || {{{int }}}*mrange_parse*{{{(char* text)}}}<br/>{{{char* }}}*mrange_next*{{{(char* port)}}} || {{{mrange.c mrange.h}}} ||
+
+Some of the Utility Subcomponents depend on other of the Utility Subcomponents. The Test Subcomponents dependencies were included in the diagrams above. The Utility Subcomponent dependencies are listed in the diagram below.

http://ndt.googlecode.com/svn/wiki/NDTArchitecture.images/NDTA4.png



  • [ndt-dev] [ndt] r713 committed - Separate the utility subcomponents from the test subcomponents, ndt, 10/11/2011

Archive powered by MHonArc 2.6.16.

Top of Page