--- a/src/applications/onoff-application.h Wed May 16 13:37:39 2007 -0400
+++ b/src/applications/onoff-application.h Wed May 16 16:39:32 2007 -0400
@@ -54,6 +54,7 @@
* \param n node associated to this application
* \param rip remote ip address
* \param rport remove port number
+ * \param iid
* \param ontime on time random variable
* \param offtime off time random variable
*/
@@ -68,6 +69,7 @@
* \param n node associated to this application
* \param rip remote ip address
* \param rport remove port number
+ * \param iid
* \param ontime on time random variable
* \param offtime off time random variable
* \param rate data rate when on
--- a/src/core/callback.h Wed May 16 13:37:39 2007 -0400
+++ b/src/core/callback.h Wed May 16 16:39:32 2007 -0400
@@ -548,7 +548,7 @@
}
-/**
+/*
* The following is experimental code. It works but we have
* not yet determined whether or not it is really useful and whether
* or not we really want to use it.
--- a/src/internet-node/arp-cache.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/arp-cache.h Wed May 16 16:39:32 2007 -0400
@@ -35,16 +35,30 @@
class NetDevice;
class Ipv4Interface;
+/**
+ * \brief An ARP cache
+ *
+ * A cached lookup table for translating layer 3 addresses to layer 2.
+ * This implementation does lookups from IPv4 to a MAC address
+ */
class ArpCache {
public:
class Entry;
-
+ /**
+ * \param device The hardware NetDevice associated with this ARP chache
+ * \param interface the Ipv4Interface associated with this ARP chache
+ */
ArpCache (Ptr<NetDevice> device, Ipv4Interface *interface);
~ArpCache ();
-
+ /**
+ * \return The NetDevice that this ARP cache is associated with
+ */
Ptr<NetDevice> GetDevice (void) const;
+ /**
+ * \return the Ipv4Interface that this ARP cache is associated with
+ */
Ipv4Interface *GetInterface (void) const;
-
+
void SetAliveTimeout (Time aliveTimeout);
void SetDeadTimeout (Time deadTimeout);
void SetWaitReplyTimeout (Time waitReplyTimeout);
@@ -52,26 +66,71 @@
Time GetDeadTimeout (void) const;
Time GetWaitReplyTimeout (void) const;
-
+ /**
+ * \brief Do lookup in the ARP chache against an IP address
+ * \param destination The destination IPv4 address to lookup the MAC address
+ * of
+ * \return An ArpCache::Entry with info about layer 2
+ */
ArpCache::Entry *Lookup (Ipv4Address destination);
+ /**
+ * \brief Add an Ipv4Address to this ARP cache
+ */
ArpCache::Entry *Add (Ipv4Address to);
+ /**
+ * \brief Clear the ArpCache of all entries
+ */
void Flush (void);
-
+ /**
+ * \brief A record that that holds information about an ArpCache entry
+ */
class Entry {
public:
+ /**
+ * \brief Constructor
+ * \param arp The ArpCache this entry belongs to
+ */
Entry (ArpCache *arp);
-
+
+ /**
+ * \brief Changes the state of this entry to dead
+ */
void MarkDead (void);
+ /**
+ * \param macAddress
+ * \return
+ */
Packet MarkAlive (MacAddress macAddress);
+ /**
+ * \param waiting
+ */
void MarkWaitReply (Packet waiting);
+ /**
+ * \param waiting
+ * \return
+ */
Packet UpdateWaitReply (Packet waiting);
-
+ /**
+ * \return True if the state of this entry is dead; false otherwise.
+ */
bool IsDead (void);
+ /**
+ * \return True if the state of this entry is alive; false otherwise.
+ */
bool IsAlive (void);
+ /**
+ * \return True if the state of this entry is wait_reply; false otherwise.
+ */
bool IsWaitReply (void);
+ /**
+ * \return The MacAddress of this entry
+ */
MacAddress GetMacAddress (void);
+ /**
+ * \return True if this entry has timedout; false otherwise.
+ */
bool IsExpired (void);
private:
enum ArpCacheEntryState_e {
--- a/src/internet-node/arp-header.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/arp-header.h Wed May 16 16:39:32 2007 -0400
@@ -27,7 +27,9 @@
#include "ns3/ipv4-address.h"
namespace ns3 {
-
+/**
+ * \brief The packet header for an ARP packet
+ */
class ArpHeader : public Header {
public:
virtual ~ArpHeader ();
@@ -48,9 +50,22 @@
Ipv4Address GetDestinationIpv4Address (void);
private:
+ /**
+ * \param os
+ */
virtual void PrintTo (std::ostream &os) const;
+ /**
+ * \return
+ */
virtual uint32_t GetSerializedSize (void) const;
+ /**
+ * \param start
+ */
virtual void SerializeTo (Buffer::Iterator start) const;
+ /**
+ * \param start
+ * \return
+ */
virtual uint32_t DeserializeFrom (Buffer::Iterator start);
enum ArpType_e {
--- a/src/internet-node/arp.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/arp.h Wed May 16 16:39:32 2007 -0400
@@ -35,18 +35,33 @@
class Packet;
class TraceResolver;
class TraceContext;
-
+/**
+ * \brief An implementation of the ARP protocol
+ */
class Arp : public L3Protocol
{
public:
static const uint16_t PROT_NUMBER;
-
+ /**
+ * \brief Constructor
+ * \param node The node which this ARP object is associated with
+ */
Arp (Ptr<INode> node);
~Arp ();
virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
-
+ /**
+ * \brief Recieve a packet
+ */
virtual void Receive(Packet& p, Ptr<NetDevice> device);
+ /**
+ * \brief Perform an ARP lookup
+ * \param p
+ * \param destination
+ * \param device
+ * \param hardwareDestination
+ * \return
+ */
bool Lookup (Packet &p, Ipv4Address destination,
Ptr<NetDevice> device,
MacAddress *hardwareDestination);
--- a/src/internet-node/ipv4-header.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/ipv4-header.h Wed May 16 16:39:32 2007 -0400
@@ -26,26 +26,71 @@
#include "ns3/ipv4-address.h"
namespace ns3 {
-
+/**
+ * \brief Packet header for IPv4
+ */
class Ipv4Header : public Header {
public:
+ /**
+ * \brief Construct a null IPv4 header
+ */
Ipv4Header ();
virtual ~Ipv4Header ();
-
+ /**
+ * \brief Enable checksum calculation for IP (XXX currently has no effect)
+ */
static void EnableChecksums (void);
-
+ /**
+ * \param size
+ */
void SetPayloadSize (uint16_t size);
+ /**
+ * \param identification
+ */
void SetIdentification (uint16_t identification);
- void SetTos (uint8_t);
+ /**
+ * \param tos
+ */
+ void SetTos (uint8_t tos);
+ /**
+ *
+ */
void SetMoreFragments (void);
+ /**
+ *
+ */
void SetLastFragment (void);
+ /**
+ *
+ */
void SetDontFragment (void);
+ /**
+ *
+ */
void SetMayFragment (void);
+ /**
+ * \param offset
+ */
void SetFragmentOffset (uint16_t offset);
- void SetTtl (uint8_t);
- void SetProtocol (uint8_t);
+ /**
+ * \param ttl
+ */
+ void SetTtl (uint8_t ttl);
+ /**
+ * \param num
+ */
+ void SetProtocol (uint8_t num);
+ /**
+ * \param source
+ */
void SetSource (Ipv4Address source);
+ /**
+ * \param destination
+ */
void SetDestination (Ipv4Address destination);
+ /**
+ * \param
+ */
uint16_t GetPayloadSize (void) const;
--- a/src/internet-node/ipv4-loopback-interface.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/ipv4-loopback-interface.h Wed May 16 16:39:32 2007 -0400
@@ -28,10 +28,16 @@
namespace ns3 {
class INode;
-
+/**
+ * \brief An IPv4 loopback interface
+ */
class Ipv4LoopbackInterface : public Ipv4Interface
{
public:
+ /**
+ * \brief Constructor
+ * \param node Pointer to a node associated with this IPv4 interface
+ */
Ipv4LoopbackInterface (Ptr<INode> node);
virtual ~Ipv4LoopbackInterface ();
--- a/src/internet-node/ipv4.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/ipv4.h Wed May 16 16:39:32 2007 -0400
@@ -157,7 +157,7 @@
void RemoveRoute (uint32_t i);
/**
- * \param interface interface to add to the list of ipv4 interfaces
+ * \param device interface to add to the list of ipv4 interfaces
* which can be used as output interfaces during packet forwarding.
* \returns the index of the interface added.
*
--- a/src/internet-node/l3-protocol.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/l3-protocol.h Wed May 16 16:39:32 2007 -0400
@@ -42,8 +42,13 @@
public:
L3Protocol(int protocolNumber, int version);
virtual ~L3Protocol ();
-
+ /**
+ * \return The protocol number of this Layer 3 protocol
+ */
int GetProtocolNumber (void) const;
+ /**
+ * \return The version number of this protocol
+ */
int GetVersion() const;
virtual TraceResolver *CreateTraceResolver (TraceContext const &context) = 0;
--- a/src/internet-node/udp-header.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/udp-header.h Wed May 16 16:39:32 2007 -0400
@@ -27,19 +27,39 @@
#include "ns3/ipv4-address.h"
namespace ns3 {
-
+/**
+ * \brief Packet header for UDP packets
+ */
class UdpHeader : public Header {
public:
+ /**
+ * \brief Constructor
+ *
+ * Creates a null header
+ */
UdpHeader ();
virtual ~UdpHeader ();
static void EnableChecksums (void);
-
+ /**
+ * \param port the destination port for this UdpHeader
+ */
void SetDestination (uint16_t port);
+ /**
+ * \param port The source port for this UdpHeader
+ */
void SetSource (uint16_t port);
+ /**
+ * \return The source port for this UdpHeader
+ */
uint16_t GetSource (void) const;
+ /**
+ * \return the destination port for this UdpHeader
+ */
uint16_t GetDestination (void) const;
-
+ /**
+ * \param size The payload size (XXX: in bytes?)
+ */
void SetPayloadSize (uint16_t size);
void InitializeChecksum (Ipv4Address source,
--- a/src/internet-node/udp.h Wed May 16 13:37:39 2007 -0400
+++ b/src/internet-node/udp.h Wed May 16 16:39:32 2007 -0400
@@ -36,16 +36,24 @@
class TraceResolver;
class TraceContext;
class Socket;
-
+/**
+ * \brief Implementation of the UDP protocol
+ */
class Udp : public Ipv4L4Protocol {
public:
static const uint8_t PROT_NUMBER;
-
+ /**
+ * \brief Constructor
+ * \param node The node this protocol is associated with
+ */
Udp (Ptr<INode> node);
virtual ~Udp ();
virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
-
+ /**
+ * \return A smart Socket pointer to a UdpSocket, allocated by this instance
+ * of the UDP protocol
+ */
Ptr<Socket> CreateSocket (void);
Ipv4EndPoint *Allocate (void);
@@ -58,9 +66,23 @@
void DeAllocate (Ipv4EndPoint *endPoint);
// called by UdpSocket.
+ /**
+ * \brief Send a packet via UDP
+ * \param packet The packet to send
+ * \param saddr The source Ipv4Address
+ * \param daddr The destination Ipv4Address
+ * \param sport The source port number
+ * \param dport The destination port number
+ */
void Send (Packet packet,
Ipv4Address saddr, Ipv4Address daddr,
uint16_t sport, uint16_t dport);
+ /**
+ * \brief Recieve a packet up the protocol stack
+ * \param p The Packet to dump the contents into
+ * \param source The source's Ipv4Address
+ * \param destination The destinations Ipv4Address
+ */
// inherited from Ipv4L4Protocol
virtual void Receive(Packet& p,
Ipv4Address const &source,