Manual spelling fixes from Johannes Buchner
authorTom Henderson <tomh@tomh.org>
Fri, 04 Sep 2009 17:23:34 -0700
changeset 4755 04a9a7e9a624
parent 4754 77c878bc3e84
child 4756 4103e20ef21b
Manual spelling fixes from Johannes Buchner
doc/manual/attributes.texi
doc/manual/callbacks.texi
doc/manual/csma.texi
doc/manual/emu.texi
doc/manual/emulation.texi
doc/manual/node.texi
doc/manual/other.texi
doc/manual/output.texi
doc/manual/packets.texi
doc/manual/point-to-point.texi
doc/manual/random.texi
doc/manual/routing.texi
doc/manual/sockets.texi
doc/manual/tcp.texi
doc/manual/wifi.texi
--- a/doc/manual/attributes.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/attributes.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -297,7 +297,7 @@
 Note that initialization of the attribute relies on the macro
 NS_OBJECT_ENSURE_REGISTERED (DropTailQueue) being called; if you leave
 this out of your new class implementation, your attributes will not be 
-initialized corretly.
+initialized correctly.
 
 @subsection Basic usage
 
@@ -521,7 +521,7 @@
  uint32_t m_cWnd;   // Congestion window
 @end verbatim
 
-Suppose that someone working with Tcp wanted to get or set the 
+Suppose that someone working with TCP wanted to get or set the 
 value of that variable using the metadata system.  If it were not
 already provided by ns-3, the user could declare the following addition 
 in the runtime metadata system (to the TypeId declaration for TcpSocket):
@@ -597,7 +597,7 @@
 of writing 
 the conversions to/from strings and attribute values.  Most of this can be
 copy/pasted with macro-ized code.  For instance, consider class
-delcaration for Rectangle in the @code{src/mobility/} directory:
+declaration for Rectangle in the @code{src/mobility/} directory:
 
 @verbatim
 /**
@@ -663,7 +663,7 @@
 found in @code{src/contrib} and not in the main tree.  If you like this feature
 and would like to provide feedback on it, please email us.
 
-Values for ns-3 attributes can be stored in an ascii or XML text file and
+Values for ns-3 attributes can be stored in an ASCII or XML text file and
 loaded into a future simulation.  This feature is known as the
 ns-3 ConfigStore.  
 The ConfigStore code is in @code{src/contrib/}.  It is not yet main-tree
--- a/doc/manual/callbacks.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/callbacks.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -19,7 +19,7 @@
 Consider that you have two simulation models A and B, and you wish
 to have them pass information between them during the simulation.  One
 way that you can do that is that you can make A and B each explicitly
-knowledgable about the other, so that they can invoke methods on each
+knowledgeable about the other, so that they can invoke methods on each
 other. 
 
 @verbatim
@@ -141,7 +141,7 @@
 }
 @end verbatim
 
-Consider also the following main program snippett:
+Consider also the following main program snippet:
 @verbatim
 int main (int argc, char *argv[])
 {
--- a/doc/manual/csma.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/csma.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -139,7 +139,7 @@
 net devices on the channel identically.  You can think of a symmetrical hub
 in which the packet bits propagate to a central location and then back out
 equal length cables to the other devices on the channel.  The single ``speed
-of light'' delay then corresponds to the time it takes for: 1) a singal to 
+of light'' delay then corresponds to the time it takes for: 1) a signal to 
 propagate from one CsmaNetDevice through its cable to the hub; plus 2) the
 time it takes for the hub to forward the packet out a port; plus 3) the time
 it takes for the signal in question to propagate to the destination net 
@@ -168,7 +168,7 @@
 @item ReceiveEnable:  Enable packet reception if true;
 @item EncapsulationMode:  Type of link layer encapsulation to use;
 @item RxErrorModel:  The receive error model;
-@item TxQueue:  The trasmit queue used by the device;
+@item TxQueue:  The transmit queue used by the device;
 @item InterframeGap:  The optional time to wait between "frames";
 @item Rx:  A trace source for received packets;
 @item Drop:  A trace source for dropped packets.
@@ -181,7 +181,7 @@
 Packets sent over the CsmaNetDevice are always routed through the 
 transmit queue to provide a trace hook for packets sent out over the 
 network.  This transmit queue can be set (via attribute) to model different
-queueing strategies.
+queuing strategies.
 
 Also configurable by attribute is the encapsulation method used by the
 device.  Every packet gets an EthernetHeader that includes the 
@@ -219,7 +219,7 @@
 
 The CSMA net devices and channels are typically created and configured using
 the associated @code{CsmaHelper} object.  The various ns3 device dhelpers 
-generatlly work in a simlar way, and their use is seen in many of our example
+generally work in a similar way, and their use is seen in many of our example
 programs.
 
 The conceptual model of interest is that of a bare computer ``husk'' into which 
@@ -302,13 +302,13 @@
 the random exponential backoff handler if a timeout is detected.
 
 Case (3) implies that a packet is dequeued from the transmit queue if it is 
-unable to be transmittted according to the backoff rules.  It is important 
+unable to be transmitted according to the backoff rules.  It is important 
 to understand that this will appear as a Dequeued packet and it is easy to 
 incorrectly assume that the packet was transmitted since it passed through
 the transmit queue.  In fact, a packet is actually dropped by the net device
 in this case.  The reason for this behavior is due to the definition of the 
-Queue Drop event.  The m_traceDrop event is, by defintion, fired when a 
-packet cannot be enqueued on the transmit queue becasue it is full.  This 
+Queue Drop event.  The m_traceDrop event is, by definition, fired when a 
+packet cannot be enqueued on the transmit queue because it is full.  This 
 event only fires if the queue is full and we do not overload this event
 to indicate that the CsmaChannel is "full."
 
--- a/doc/manual/emu.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/emu.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -78,9 +78,9 @@
 @itemize @bullet
 @item Address:  The Mac48Address of the device;
 @item DeviceName: The name of the underlying real device (e.g., ``eth1'');
-@item Start:  The simualtion time at which to enable the underlying socket;
-@item Stop:  The simualtion time at which to stop receiving from the underlying socket;
-@item TxQueue:  The trasmit queue used by the device;
+@item Start:  The simulation time at which to enable the underlying socket;
+@item Stop:  The simulation time at which to stop receiving from the underlying socket;
+@item TxQueue:  The transmit queue used by the device;
 @item InterframeGap:  The optional time to wait between "frames";
 @item Rx:  A trace source for received packets;
 @end itemize
@@ -88,7 +88,7 @@
 Packets sent over the EmuNetDevice are always routed through the 
 transmit queue to provide a trace hook for packets sent out over the 
 network.  This transmit queue can be set (via attribute) to model different
-queueing strategies.
+queuing strategies.
 
 @node Using the EmuNetDevice
 @section Using the EmuNetDevice
@@ -102,8 +102,8 @@
 is no channel, the global router will be unable to do this.
 
 The Emu net devices are typically created and configured using the associated 
-@code{EmuHelper} object.  The various ns3 device helpers generatlly work in a
-simlar way, and their use is seen in many of our example programs.
+@code{EmuHelper} object.  The various ns3 device helpers generally work in a
+similar way, and their use is seen in many of our example programs.
 
 The conceptual model of interest is that of a bare computer ``husk'' into which 
 you plug net devices.  The bare computers are created using a @code{NodeContainer}
@@ -173,8 +173,8 @@
 transmit queue.  Dequeues from the transmit queue happen immediately after
 the Enqueue event and just prior to the packet being sent to the underlying
 socket.  This means that the transmit queue really only exists to fire on
-enqueue and dequeue operations so the Emu device bhaves like other ns-3
-devices in this repect.
+enqueue and dequeue operations so the Emu device behaves like other ns-3
+devices in this respect.
 
 @subsection Lower-Level (PHY) Hooks
 
--- a/doc/manual/emulation.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/emulation.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -35,7 +35,7 @@
 
 We expect the primary use for this configuration will be to generate repeatable
 experimental results in a real-world network environment that includes all of 
-the ns-3 tracing, loging, visualization and statistics gathering tools.
+the ns-3 tracing, logging, visualization and statistics gathering tools.
 
 In what can be viewed as essentially an inverse configuration, we allow ``real'' 
 machines running native applications and protocol stacks to integrate with
@@ -188,7 +188,7 @@
   ed->SetAddress ("00:00:00:00:00:02");
 @end verbatim
 
-And then the IP address of the client or serveris set in the usual way using
+And then the IP address of the client or server is set in the usual way using
 helpers.
 
 @verbatim
--- a/doc/manual/node.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/node.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -100,7 +100,7 @@
     MakeCallback (&Ipv4L3Protocol::Receive, ipv4), 
     Ipv4L3Protocol::PROT_NUMBER, 0);
 @end verbatim
-and likewise for Ipv6, Arp, etc.
+and likewise for Ipv6, ARP, etc.
 
 @section NodeList
 
@@ -115,7 +115,7 @@
 must be aggregated to it to provide useful node functionality.
 
 The ns-3 source code directory @code{src/internet-stack} provides
-implmentation of TCP/IPv4-related components.  These include IPv4,
+implementation of TCP/IPv4-related components.  These include IPv4,
 ARP, UDP, TCP, and other related protocols.
 
 Internet Nodes are not subclasses of class Node; they are simply Nodes 
@@ -289,7 +289,7 @@
 
 To summarize, internally, the UDP implementation is organized as follows:
 @itemize @bullet
-@item a @code{UdpImpl} class that implements the Udp socket factory
+@item a @code{UdpImpl} class that implements the UDP socket factory
 functionality
 @item a @code{UdpL4Protocol} class that implements the protocol logic
 that is socket-independent 
--- a/doc/manual/other.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/other.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -515,7 +515,7 @@
 create this network, so we will just quickly go over the main sections of the
 script.
 
-The first section creates a CSMA lan that will become the left side of the
+The first section creates a CSMA LAN that will become the left side of the
 dumbbell network.  This code should be very familiar since we used the same
 process to create our first example.
 
@@ -549,7 +549,7 @@
   CsmaIpv4Topology::AddIpv4Address (n3, nd3, "10.1.1.4", "255.255.255.0");
 @end verbatim
 
-The code to generate the CSMA lan on the right side is similar; only the names
+The code to generate the CSMA LAN on the right side is similar; only the names
 have been changed.
  
 @verbatim
@@ -582,9 +582,9 @@
   CsmaIpv4Topology::AddIpv4Address (n7, nd7, "10.1.2.4", "255.255.255.0");
 @end verbatim
 
-Next, we create a point to point link to connect the two lans.  We connect
-the point-to-point channel between nodes three (on the left lan) and four
-(on the right lan).  You should recoginze this as substantially similar to
+Next, we create a point to point link to connect the two LANs.  We connect
+the point-to-point channel between nodes three (on the left LAN) and four
+(on the right LAN).  You should recognize this as substantially similar to
 the link setup from the @code{point-to-point} example.
 
 @verbatim
@@ -599,7 +599,7 @@
 @end verbatim
 
 Then we configure data flows.  We create four echo clients that send UDP 
-packets from the left side lan to servers created on the right side lan.
+packets from the left side LAN to servers created on the right side LAN.
 Notice that we send 100 packets with an inter-packet gap of ten milliseconds
 instead of the single packet we have previously used.  This data rate is
 sufficient to saturate the point-to-point link and will cause packets to be
@@ -710,7 +710,7 @@
 to some people, we'll take some time here and outline a simple methodology 
 you can follow.
 
-@section Object Design 101 --- Class Ipv4BusNetwork
+@section Object Design 101 --- Class IPv4BusNetwork
 If you are a master of object oriented design, feel free to skip or skim this
 section, in which we derive a simplistic but fully operational bus network 
 class.
@@ -735,7 +735,7 @@
 Immediately we can notice that at the highest level we are talking about the
 noun @emph{network}.  This probably won't surprise you.  We also have an 
 adjective that modifies the noun --- @emph{bus}.  This should lead us to our 
-first class defintion.  Usually class names are constructed in the same way
+first class definition.  Usually class names are constructed in the same way
 as an English language sentence would be spoken.  For example, one would speak
 of a @emph{bus network} in conversation, so we would normally create a
 @code{class BusNetwork} to represent it.  
@@ -1005,7 +1005,7 @@
 
 @section Using Ipv4BusNetwork
 If all you ever want to do with a bus network can be captured in a topology
-with four nodes on the bus, the preceeding section may seem like a colossal
+with four nodes on the bus, the preceding section may seem like a colossal
 waste of time.  This is probably not the case, though.  Now that we have a
 relatively abstract bus class, we can create bus networks with 4, 40 or 4000
 nodes with no additional effort.
@@ -1044,7 +1044,7 @@
 
 This concludes the first part of the tutorial.  We have focused on
 using the @command{ns-3} system to construct various network topologies and to
-simulate sendng data across the networks; and we've shown you how to use the 
+simulate sending data across the networks; and we've shown you how to use the 
 trace facility to get access to simulation results.
 
 We now encourage you to play with the system a little.  Experiment with what
@@ -1058,7 +1058,7 @@
 examining the lower levels of the system in more detail.  We are going to
 explain how to change the behavior of the system and eventually how to write
 new models and applications.  This is a good time to make sure that you
-thorougly understand what we've gone over so far.
+thoroughly understand what we've gone over so far.
 
 @c ========================================================================
 @c Object Model
@@ -1365,7 +1365,7 @@
 Technically, the class named @code{Object} is simply a base class that you
 will inherit from if you want your @code{Objects} to support aggregation and
 discovery.  Many systems have a base class that implements common 
-functionality and these base classes are typically called somthing like 
+functionality and these base classes are typically called something like 
 Object.  The @command{ns-3} version of this base class relates primarily to
 @code{Object} aggregation and discovery, although it does also provide methods
 to help with intrusive reference counting and tracing as well.
@@ -1383,7 +1383,7 @@
 For those of you unfamiliar with Microsoft COM, CORBA or ORBit, this might 
 sound obvious.  For those of with such a background, the point we are making 
 is that there is no such thing in @command{ns-3} as a separate Interface
-declaration, no such thing as an Interface Definiition Language, no such thing
+declaration, no such thing as an Interface Definition Language, no such thing
 as a UUID or GUID, etc.  In @command{ns-3} we just work with C++ objects that
 may be given some very useful abilities by inheriting from the @command{ns-3}
 base class @code{Object}.  @command{Ns-3} @code{Objects} are not required to
@@ -1422,7 +1422,7 @@
 @code{Object}.  So, when the @code{Node} object is created it is really an 
 aggregation of one @code{Object} and you can call @code{AggregateObject} or
 @code{GetObject} on the resulting @code{Node} object.  Along with being an
-aggregation, the @code{Node} class also describes a public interface.  THis
+aggregation, the @code{Node} class also describes a public interface.  This
 public interface (API) is declared just as any C++ object is declared, via its
 class methods as specified in the inheritance tree.  For those steeped in 
 COM or CORBA, this is where the concept of Interface works in @command{ns-3}.
@@ -1435,7 +1435,7 @@
 The line with the circle at the top of the diagram represents the appearance 
 of the @code{Object} API to the external world.  This circle and line are 
 together called a lollipop because of its superficial similarity to a kind of
-childs candy.  
+child's candy.  
 
 @sp 1
 @center @image{oneobj,,,,png}
@@ -1514,7 +1514,7 @@
   a->AggregateObject (c);
 @end verbatim
 
-Thats all there is to it.  Now that you have those connectors snapped
+That's all there is to it.  Now that you have those connectors snapped
 together, you can ask each of the @code{Objects} in the aggregation for any of
 the other @code{Objects} in the aggregation.  Lets look at a simple example:
 
@@ -1527,11 +1527,11 @@
 @code{B} to help with memory management of the returned @code{Object} pointer.
 You should be very familiar with smart pointers at this stage of the tutorial.
 
-The right hand side illustrates how @code{GetObject} is acutally used.  
-The method @code{GetObject} is templated.  The assocated template parameter 
+The right hand side illustrates how @code{GetObject} is actually used.  
+The method @code{GetObject} is templated.  The associated template parameter 
 (between the brackets) specifies the @emph{class} that is being requested.
 This is important.  Since it is the class type that specifies the search
-criteron, there can be only one instance of a particular class present in an
+criterion, there can be only one instance of a particular class present in an
 aggregation.  Looking back a little, although the parameter to
 @code{AggregateObject} appears to be a vanilla C++ object (@code{b} or @code{c}
 above), it actually represents (is an instance of) a class that has an
@@ -1648,7 +1648,7 @@
 @cindex TypeId
 @cindex GetTypeId
 The final piece of this puzzle is the @code{TypeId}.  Recall that the
-declaration our eample object above included the following code
+declaration our example object above included the following code
 
 @verbatim
   static ns3::TypeId GetTypeId (void)
@@ -1724,7 +1724,7 @@
 @code{class A}, and is initialized by a call to the constructor for the class
 @code{TypeId}.  The constructor for @code{TypeId} takes a @code{std::string}
 that can be used to locate the type information for your class.  We usually
-privide the class name as the string.
+provide the class name as the string.
 
 Hopefully, this much of the declaration is now clear:
 
@@ -1787,7 +1787,7 @@
   AddConstructor<A> ();
 @end verbatim
 
-You can interpret this as explaining to the @command{ns-3} object ssytem that
+You can interpret this as explaining to the @command{ns-3} object system that
 you have a constructor named @code{A::A} which takes no parameters.  You are
 saying that this constructor should be used when @code{CreateObject} is called
 with no parameters.
@@ -2077,10 +2077,10 @@
 
 @emph{Remember:  Object types do not identify objects.}
 
-@subsection Dont use GetObject to Check Your Own Type.
+@subsection Don't use GetObject to Check Your Own Type.
 @cindex GetObject
 It is tempting to use @code{GetObject} as a form of runtime type
-information.  Dont do it.  You have no control over what @emph{other}
+information.  Don't do it.  You have no control over what @emph{other}
 object may be added to your aggregation.  Someone else may have
 appropriated (reimplemented) your type and aggregated themselves onto the
 aggregation.
--- a/doc/manual/output.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/output.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -72,7 +72,7 @@
 the @command{ns-3} low-level 
 tracing system that lets you get access to underlying trace events easily.  
 The output of a trace of a simulation run is an ASCII file --- thus the name.  
-In the spririt of keeping things simple, you won't be able to control or 
+In the spirit of keeping things simple, you won't be able to control or 
 configure the output at this stage.
 
 For those familiar with @command{ns-2} output, this type of trace is
@@ -121,10 +121,10 @@
 change into the top level directory and take a look at the file 
 @code{tutorial.tr} in your favorite editor.
 
-@subsubsection Parsing Ascii Traces
-@cindex parsing ascii traces
+@subsubsection Parsing ASCII Traces
+@cindex parsing ASCII traces
 
-This section parses in detail the structure of the ascii tracing
+This section parses in detail the structure of the ASCII tracing
 output.  If you find this output format self explanatory (it
 resembles tcpdump output), you may skip to the next
 section on pcap tracing.
@@ -191,7 +191,7 @@
 zero.  Therefore, @code{nodeid=0} means that the node in which the given trace
 event originated is the first node we created.  In the case of our script, 
 this first node is is the node pointed to by the smart pointer @code{n0}.  Not
-too surpsisingly, this is also the node to which we attached the
+too surprisingly, this is also the node to which we attached the
 @code{UdpEchoClient}.  The device number is local to each node, and so the
 device given by @code{device=0} is the first net device that we added to the
 node in question.  In our simulation, this corresponds to the 
@@ -269,10 +269,10 @@
 Looking at the packet payload (references 10-14) we see that this is an ARP
 reply to the request sent by node one.  Note that the simulation time
 (reference 01) is now 2.00207 seconds.  This is direct result of the data rate
-(5 mb/s) and latency (2 ms) parameters that we passed to the 
+(5 MB/s) and latency (2 ms) parameters that we passed to the 
 @code{CsmaChannel} when we created it.  Clearly the ARP request packet was 
 sent over the channel and received approximately 2 ms later by node one.  A
-corresponding ARP response packet was created and enqueued on node one's net
+corresponding ARP response packet was created and enqueued on node ones net
 device.  It is this enqueue trace event that has being logged.  
 
 @cindex queue
@@ -339,7 +339,7 @@
 on that node has turned the packet around.  Just as node zero needed to ARP
 for the MAC address of node one, now node one must ARP for the MAC address of
 node zero.  We see the ARP request enqueued on the transmit queue of node one;
-then we see the ARP request dequeued from the tranmit queue of node one (and
+then we see the ARP request dequeued from the transmit queue of node one (and
 implicitly transmitted to node zero).  Then we see an ARP response enqueued
 on the transmit queue of node zero; and finally the ARP response dequeued (and
 implicitly transmitted back to node one).
@@ -396,7 +396,7 @@
 The code used to enable pcap tracing is similar to that for ASCII tracing.  
 We have provided another file, @code{tutorial-csma-echo-pcap-trace.cc} that 
 uses the pcap trace wrapper.  We have added the code to include the pcap 
-trace wrapper defintions:
+trace wrapper definitions:
 
 @verbatim
   #include "ns3/pcap-trace.h"
@@ -447,7 +447,7 @@
 
 @subsubsection Reading output with Wireshark
 @cindex Wireshark
-If you are unfamilar with Wireshark, there is a web site available from which
+If you are unfamiliar with Wireshark, there is a web site available from which
 you can download programs and documentation:  @uref{http://www.wireshark.org/}.
 
 If you have Wireshark available, you can open each of the trace files and
--- a/doc/manual/packets.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/packets.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -59,7 +59,7 @@
 layer.
  
 Memory management of Packet objects is entirely automatic and extremely
-efficient: memory for the application-level payload can be modelized by
+efficient: memory for the application-level payload can be modeled by
 a virtual buffer of zero-filled bytes for which memory is never allocated
 unless explicitly requested by the user or unless the packet is fragmented
 or serialized out to a real network device.
@@ -458,7 +458,7 @@
 @verbatim
   Ptr<Packet> p;  // pointer to a pre-existing packet
   SocketIpTtlTag tag
-  tag.SetTtl (m_ipMulticastTtl); // Convey the TTL from Udp layer to IP layer
+  tag.SetTtl (m_ipMulticastTtl); // Convey the TTL from UDP layer to IP layer
   p->AddPacketTag (tag);
 @end verbatim
 
@@ -636,7 +636,7 @@
 On the other hand, copying a Packet and its tags is a matter of 
 copying the TagData head pointer and incrementing its reference count.
 
-Tags are found by the unique mapping betweent the Tag type and
+Tags are found by the unique mapping between the Tag type and
 its underlying id.  This is why at most one instance of any Tag
 can be stored in a packet.  The mapping between Tag type and 
 underlying id is performed by a registration as follows:
--- a/doc/manual/point-to-point.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/point-to-point.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -35,7 +35,7 @@
 @itemize @bullet
 @item Address:  The ns3::Mac48Address of the device (if desired);
 @item DataRate:  The data rate (ns3::DataRate) of the device;
-@item TxQueue:  The trasmit queue (ns3::Queue) used by the device;
+@item TxQueue:  The transmit queue (ns3::Queue) used by the device;
 @item InterframeGap:  The optional ns3::Time to wait between "frames";
 @item Rx:  A trace source for received packets;
 @item Drop:  A trace source for dropped packets.
@@ -78,7 +78,7 @@
 
 The PointToPoint net devices and channels are typically created and configured using
 the associated @code{PointToPointHelper} object.  The various ns3 device helpers 
-generally work in a simlar way, and their use is seen in many of our example
+generally work in a similar way, and their use is seen in many of our example
 programs and is also covered in the ns-3 tutorial.
 
 The conceptual model of interest is that of a bare computer ``husk'' into which 
@@ -93,7 +93,7 @@
 
 Once you have your nodes, you need to instantiate a @code{PointToPointHelper} and set
 any attributes you may want to change.  Note that since this is a point-to-point 
-(as compared to a point-to-mulipoint) there may only be two nodes with associated 
+(as compared to a point-to-multipoint) there may only be two nodes with associated 
 net devices connected by a PointToPointChannel.
 
 @verbatim
--- a/doc/manual/random.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/random.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -28,7 +28,7 @@
 @itemize @bullet
 @item @strong{by default, ns-3 simulations use a fixed seed}; if there is any 
 randomness in the simulation, each run of the program will yield identical
-results uniess the seed and/or run number is changed.  
+results unless the seed and/or run number is changed.  
 @itemize @bullet
 @item @strong{in ns-3.3 and earlier, ns-3 simulations used a random seed by 
 default; this marks a change in policy starting with ns-3.4}
@@ -81,7 +81,7 @@
 the first stream might use the first N/2 values and the second
 stream might produce the second N/2 values.  An important property
 here is that the two streams are uncorrelated.  Likewise, each
-stream can be partitioned disjointly to a number of 
+stream can be partitioned disjointedly to a number of 
 uncorrelated @emph{substreams}.  The underlying RNG hopefully
 produces a pseudo-random sequence of numbers with a very long
 cycle length, and partitions this into streams and substreams in an 
--- a/doc/manual/routing.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/routing.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -225,7 +225,7 @@
 by the simulation author) until a route is found.  
 
 We chose this approach because it may better
-faciliate the integration of disparate routing approaches that may 
+facilitate the integration of disparate routing approaches that may 
 be difficult to coordinate the writing to a single table, approaches
 where more information than destination IP address (e.g., source
 routing) is used to determine the next hop, and on-demand
@@ -300,7 +300,7 @@
 
 Typically there are two main types of multicast routes:  routes of the 
 first kind are used during forwarding.  All of the conditions must be
-exlicitly provided.  The second kind of routes are used to get packets off
+explicitly provided.  The second kind of routes are used to get packets off
 of a local node.  The difference is in the input interface.  Routes for
 forwarding will always have an explicit input interface specified.  Routes
 off of a node will always set the input interface to a wildcard specified
--- a/doc/manual/sockets.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/sockets.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -177,7 +177,7 @@
 Similarly, passing in a zero to the pointer argument in the raw buffer
 variants has the same effect.  Note that, if some subsequent code tries
 to read the Packet data buffer, the fake buffer will be converted to
-a real (zero'ed) buffer on the spot, and the efficiency will be lost there.
+a real (zeroed) buffer on the spot, and the efficiency will be lost there.
 
 @subsection Socket options
 
--- a/doc/manual/tcp.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/tcp.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -28,7 +28,7 @@
       ...
     }
 @end verbatim
-The parameter @code{m_tid} controls the TypeId of the actual Tcp Socket
+The parameter @code{m_tid} controls the TypeId of the actual TCP Socket
 implementation that is instantiated.  This way, the application can be
 written generically and different socket implementations can be swapped out
 by specifying the TypeId.
@@ -138,7 +138,7 @@
 
 @subsection Configuring and Downloading
 
-NSC is disbled by default and must be explicitly configured in.  To try
+NSC is disabled by default and must be explicitly configured in.  To try
 this, type
 @verbatim
 ./waf configure --enable-nsc
@@ -210,7 +210,7 @@
 The key line is the @code{SetNscStack}.  This tells the InternetStack
 helper to aggregate instances of NSC TCP instead of native ns-3 TCP
 to the remaining nodes.  It is important that this function be called
-@strong{before} callling the @code{Install()} function, as shown above.
+@strong{before} calling the @code{Install()} function, as shown above.
 
 Which stacks are available to use?  Presently, the focus has been on
 Linux 2.6.18 and Linux 2.6.26 stacks for ns-3.  To see which stacks
--- a/doc/manual/wifi.texi	Fri Sep 04 17:27:33 2009 +0200
+++ b/doc/manual/wifi.texi	Fri Sep 04 17:23:34 2009 -0700
@@ -128,11 +128,11 @@
 configuration of the WifiNetDevice powerful but complex.  For this reason,
 we provide some helper classes to perform common operations in a simple
 matter, and leverage the ns-3 attribute system to allow users to control
-the parameterization of the underlying models.
+the parametrization of the underlying models.
 
 Users who use the low-level ns-3 API and who wish to add a WifiNetDevice
 to their node must create an instance of a WifiNetDevice, plus 
-a number of consitutent objects, and bind them together appropriately
+a number of constituent objects, and bind them together appropriately
 (the WifiNetDevice is very modular in this regard, for future
 extensibility).  At the low-level API, this can be done
 with about 20 lines of code (see @code{ns3::WifiHelper::Install}, and