Doxygen for internet-stack
authorTom Henderson <tomh@tomh.org>
Fri, 12 Sep 2008 16:12:58 -0700
changeset 3691 372f4475dc47
parent 3690 5e90a85aafaa
child 3692 1f26d314ae20
Doxygen for internet-stack
src/internet-stack/arp-cache.h
src/internet-stack/arp-header.h
src/internet-stack/arp-ipv4-interface.h
src/internet-stack/arp-l3-protocol.h
src/internet-stack/nsc-tcp-l4-protocol.h
src/internet-stack/nsc-tcp-socket-factory-impl.h
src/internet-stack/nsc-tcp-socket-impl.h
src/internet-stack/pending-data.h
src/internet-stack/rtt-estimator.h
src/internet-stack/sequence-number.h
src/internet-stack/tcp-header.h
src/internet-stack/tcp-l4-protocol.h
src/internet-stack/tcp-socket-factory-impl.h
src/internet-stack/tcp-socket-impl.h
src/internet-stack/udp-header.h
src/internet-stack/udp-l4-protocol.h
src/internet-stack/udp-socket-factory-impl.h
src/internet-stack/udp-socket-impl.h
--- a/src/internet-stack/arp-cache.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/arp-cache.h	Fri Sep 12 16:12:58 2008 -0700
@@ -40,6 +40,7 @@
 class Ipv4Interface;
 
 /**
+ * \ingroup arp
  * \brief An ARP cache
  *
  * A cached lookup table for translating layer 3 addresses to layer 2.
--- a/src/internet-stack/arp-header.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/arp-header.h	Fri Sep 12 16:12:58 2008 -0700
@@ -28,6 +28,7 @@
 
 namespace ns3 {
 /**
+ * \ingroup arp
  * \brief The packet header for an ARP packet
  */
 class ArpHeader : public Header 
--- a/src/internet-stack/arp-ipv4-interface.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/arp-ipv4-interface.h	Fri Sep 12 16:12:58 2008 -0700
@@ -30,6 +30,7 @@
 class ArpCache;
 
 /**
+ * \ingroup arp
  * \brief an Ipv4 Interface which uses ARP
  *
  * If you need to use ARP on top of a specific NetDevice, you
--- a/src/internet-stack/arp-l3-protocol.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/arp-l3-protocol.h	Fri Sep 12 16:12:58 2008 -0700
@@ -36,6 +36,13 @@
 class Packet;
 
 /**
+ * \ingroup internetStack
+ * \defgroup arp Arp
+ *
+ * This is an overview of Arp capabilities (write me).
+ */
+/**
+ * \ingroup arp
  * \brief An implementation of the ARP protocol
  */
 class ArpL3Protocol : public Object
--- a/src/internet-stack/nsc-tcp-l4-protocol.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/nsc-tcp-l4-protocol.h	Fri Sep 12 16:12:58 2008 -0700
@@ -38,7 +38,9 @@
 class Socket;
 class TcpHeader;
 /**
- * \brief Nsc wrapper glue.
+ * \ingroup nsctcp
+ * 
+ * \brief Nsc wrapper glue, to interface with the Ipv4 protocol underneath.
  */
 class NscTcpL4Protocol : public Ipv4L4Protocol, ISendCallback, IInterruptCallback {
 public:
--- a/src/internet-stack/nsc-tcp-socket-factory-impl.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/nsc-tcp-socket-factory-impl.h	Fri Sep 12 16:12:58 2008 -0700
@@ -23,6 +23,24 @@
 
 class NscTcpL4Protocol;
 
+/**
+ * \ingroup internetStack
+ * \defgroup nsctcp NscTcp
+ *
+ * An alternate implementation of TCP for ns-3 is provided by the
+ * Network Simulation Cradle (NSC) project. NSC is a separately linked
+ * library that provides ported TCP stacks from popular operating systems
+ * such as Linux and FreeBSD.  Glue code such as the ns-3 NSC code
+ * allows users to delegate Internet stack processing to the logic
+ * from these operating systems.  This allows a user to reproduce
+ * with high fidelity the behavior of a real TCP stack.
+ */
+
+/**
+ * \ingroup nsctcp
+ *
+ * \brief socket factory implementation for creating instances of NSC TCP
+ */
 class NscTcpSocketFactoryImpl : public TcpSocketFactory
 {
 public:
--- a/src/internet-stack/nsc-tcp-socket-impl.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/nsc-tcp-socket-impl.h	Fri Sep 12 16:12:58 2008 -0700
@@ -40,6 +40,16 @@
 class NscTcpL4Protocol;
 class TcpHeader;
 
+/**
+ * \ingroup socket
+ * \ingroup nsctcp
+ *
+ * \brief Socket logic for the NSC TCP sockets.  
+ * 
+ * Most of the TCP internal
+ * logic is handled by the NSC tcp library itself; this class maps ns3::Socket
+ * calls to the NSC TCP library.
+ */
 class NscTcpSocketImpl : public TcpSocket
 {
 public:
--- a/src/internet-stack/pending-data.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/pending-data.h	Fri Sep 12 16:12:58 2008 -0700
@@ -33,6 +33,11 @@
 {
 class Packet;
 
+/**
+ * \ingroup tcp
+ *
+ * \brief class for managing I/O between applications and TCP
+ */
 class PendingData {
 public:
   PendingData ();
--- a/src/internet-stack/rtt-estimator.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/rtt-estimator.h	Fri Sep 12 16:12:58 2008 -0700
@@ -21,7 +21,6 @@
 // Georgia Tech Network Simulator - Round Trip Time Estimation Class
 // George F. Riley.  Georgia Tech, Spring 2002
 
-// Implements several variations of round trip time estimators
 
 #ifndef __rtt_estimator_h__
 #define __rtt_estimator_h__
@@ -33,6 +32,11 @@
 
 namespace ns3 {
 
+/**
+ * \ingroup tcp
+ *
+ * \brief Implements several variations of round trip time estimators
+ */
 class RttHistory {
 public:
   RttHistory (SequenceNumber s, uint32_t c, Time t);
--- a/src/internet-stack/sequence-number.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/sequence-number.h	Fri Sep 12 16:12:58 2008 -0700
@@ -22,8 +22,6 @@
 // Georgia Tech Network Simulator - Manage 32 bit unsigned sequence numbers
 // George F. Riley.  Georgia Tech, Spring 2002
 
-// Class to manage arithmetic operations on sequence numbers (mod 2^32)
-
 #ifndef __seq_h__
 #define __seq_h__
 
@@ -31,6 +29,11 @@
 
 #define MAX_SEQ ((uint32_t)0xffffffff)
 
+/**
+ * \ingroup tcp
+ *
+ * \brief Class to manage arithmetic operations on sequence numbers (mod 2^32)
+ */
 class SequenceNumber {
 public:
   SequenceNumber () : seq(0) { }
--- a/src/internet-stack/tcp-header.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/tcp-header.h	Fri Sep 12 16:12:58 2008 -0700
@@ -31,6 +31,7 @@
 namespace ns3 {
 
 /**
+ * \ingroup tcp
  * \brief Header for the Transmission Control Protocol
  *
  * This class has fields corresponding to those in a network TCP header
--- a/src/internet-stack/tcp-l4-protocol.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/tcp-l4-protocol.h	Fri Sep 12 16:12:58 2008 -0700
@@ -41,6 +41,7 @@
 class TcpHeader;
 
 /**
+ * \ingroup tcp
  * \brief A layer between the sockets interface and IP
  * 
  * This class allocates "endpoint" objects (ns3::Ipv4EndPoint) for TCP,
--- a/src/internet-stack/tcp-socket-factory-impl.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/tcp-socket-factory-impl.h	Fri Sep 12 16:12:58 2008 -0700
@@ -28,12 +28,8 @@
 class TcpL4Protocol;
 
 /**
- * \ingroup internetNode
- * \defgroup Tcp Tcp
- */
-/**
- * \ingroup Tcp
- * \section Tcp Overview
+ * \ingroup internetStack
+ * \defgroup tcp Tcp
  *
  * The TCP code in ns3's internet stack is ported from the  
  * <a href="http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/">
@@ -43,6 +39,13 @@
  * This class serves to create sockets of the TcpSocketImpl
  * type.  That is, it creates sockets which use the GTNetS Tahoe code.
  */
+
+/**
+ * \ingroup tcp
+ *
+ * \brief socket factory implementation for native ns-3 TCP
+ *
+ */
 class TcpSocketFactoryImpl : public TcpSocketFactory
 {
 public:
--- a/src/internet-stack/tcp-socket-impl.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/tcp-socket-impl.h	Fri Sep 12 16:12:58 2008 -0700
@@ -44,6 +44,7 @@
 
 /**
  * \ingroup socket
+ * \ingroup tcp
  *
  * \brief An implementation of a stream socket using TCP.
  *
--- a/src/internet-stack/udp-header.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/udp-header.h	Fri Sep 12 16:12:58 2008 -0700
@@ -28,6 +28,7 @@
 
 namespace ns3 {
 /**
+ * \ingroup udp
  * \brief Packet header for UDP packets
  *
  * This class has fields corresponding to those in a network UDP header
--- a/src/internet-stack/udp-l4-protocol.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/udp-l4-protocol.h	Fri Sep 12 16:12:58 2008 -0700
@@ -34,6 +34,7 @@
 class Node;
 class Socket;
 /**
+ * \ingroup udp
  * \brief Implementation of the UDP protocol
  */
 class UdpL4Protocol : public Ipv4L4Protocol {
--- a/src/internet-stack/udp-socket-factory-impl.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/udp-socket-factory-impl.h	Fri Sep 12 16:12:58 2008 -0700
@@ -28,6 +28,23 @@
 class UdpL4Protocol;
 
 /**
+ * \ingroup internetStack
+ * \defgroup udp Udp
+ *
+ * This  is  an  implementation of the User Datagram Protocol described in
+ * RFC 768.  It implements a connectionless,  unreliable  datagram  packet
+ * service.   Packets  may  be reordered or duplicated before they arrive.
+ * UDP generates and checks checksums to catch transmission errors.
+ *
+ * The following options are not presently part of this implementation:
+ * UDP_CORK, MSG_DONTROUTE, path MTU discovery control (e.g. 
+ * IP_MTU_DISCOVER).  MTU handling is also weak in ns-3 for the moment;
+ * it is best to send datagrams that do not exceed 1500 byte MTU (e.g.
+ * 1472 byte UDP datagrams)
+ */
+
+/**
+ * \ingroup udp
  * \brief Object to create UDP socket instances 
  * \internal
  *
--- a/src/internet-stack/udp-socket-impl.h	Fri Sep 12 11:34:25 2008 -0700
+++ b/src/internet-stack/udp-socket-impl.h	Fri Sep 12 16:12:58 2008 -0700
@@ -37,6 +37,7 @@
 class UdpL4Protocol;
 
 /**
+ * \ingroup udp
  * \brief A sockets interface to UDP
  * 
  * This class subclasses ns3::UdpSocket, and provides a socket interface