View | Details | Raw Unified | Return to bug 491
Collapse All | Expand All

(-)a/src/internet-stack/icmpv4-l4-protocol.cc (-1 / +1 lines)
 Lines 111-117    Link Here 
111
  Icmpv4Header icmp;
111
  Icmpv4Header icmp;
112
  icmp.SetType (type);
112
  icmp.SetType (type);
113
  icmp.SetCode (code);
113
  icmp.SetCode (code);
114
  if (m_calcChecksum)
114
  if (m_calcChecksum || Node::ChecksumEnabled ())
115
    {
115
    {
116
      icmp.EnableChecksum ();
116
      icmp.EnableChecksum ();
117
    }
117
    }
(-)a/src/internet-stack/ipv4-l3-protocol.cc (-2 / +2 lines)
 Lines 401-407    Link Here 
401
    }
401
    }
402
402
403
  Ipv4Header ipHeader;
403
  Ipv4Header ipHeader;
404
  if (m_calcChecksum)
404
  if (m_calcChecksum || Node::ChecksumEnabled ())
405
    {
405
    {
406
      ipHeader.EnableChecksum ();
406
      ipHeader.EnableChecksum ();
407
    }
407
    }
 Lines 588-594    Link Here 
588
      ipHeader.SetIdentification (m_identification);
588
      ipHeader.SetIdentification (m_identification);
589
      m_identification ++;
589
      m_identification ++;
590
    }
590
    }
591
  if (m_calcChecksum)
591
  if (m_calcChecksum || Node::ChecksumEnabled ())
592
    {
592
    {
593
      ipHeader.EnableChecksum ();
593
      ipHeader.EnableChecksum ();
594
    }
594
    }
(-)a/src/internet-stack/tcp-l4-protocol.cc (-3 / +3 lines)
 Lines 477-483    Link Here 
477
  NS_LOG_FUNCTION (this << packet << source << destination << incomingInterface);
477
  NS_LOG_FUNCTION (this << packet << source << destination << incomingInterface);
478
478
479
  TcpHeader tcpHeader;
479
  TcpHeader tcpHeader;
480
  if(m_calcChecksum)
480
  if(m_calcChecksum || Node::ChecksumEnabled ())
481
  {
481
  {
482
    tcpHeader.EnableChecksums();
482
    tcpHeader.EnableChecksums();
483
    tcpHeader.InitializeChecksum (source, destination, PROT_NUMBER);
483
    tcpHeader.InitializeChecksum (source, destination, PROT_NUMBER);
 Lines 529-535    Link Here 
529
  TcpHeader tcpHeader;
529
  TcpHeader tcpHeader;
530
  tcpHeader.SetDestinationPort (dport);
530
  tcpHeader.SetDestinationPort (dport);
531
  tcpHeader.SetSourcePort (sport);
531
  tcpHeader.SetSourcePort (sport);
532
  if(m_calcChecksum)
532
  if(m_calcChecksum || Node::ChecksumEnabled ())
533
  {
533
  {
534
    tcpHeader.EnableChecksums();
534
    tcpHeader.EnableChecksums();
535
  }
535
  }
 Lines 571-577    Link Here 
571
571
572
  outgoingHeader.SetLength (5); //header length in units of 32bit words
572
  outgoingHeader.SetLength (5); //header length in units of 32bit words
573
  /* outgoingHeader.SetUrgentPointer (0); //XXX */
573
  /* outgoingHeader.SetUrgentPointer (0); //XXX */
574
  if(m_calcChecksum)
574
  if(m_calcChecksum || Node::ChecksumEnabled ())
575
  {
575
  {
576
    outgoingHeader.EnableChecksums();
576
    outgoingHeader.EnableChecksums();
577
  }
577
  }
(-)a/src/internet-stack/udp-l4-protocol.cc (-3 / +3 lines)
 Lines 204-210    Link Here 
204
{
204
{
205
  NS_LOG_FUNCTION (this << packet << source << destination);
205
  NS_LOG_FUNCTION (this << packet << source << destination);
206
  UdpHeader udpHeader;
206
  UdpHeader udpHeader;
207
  if(m_calcChecksum)
207
  if(m_calcChecksum || Node::ChecksumEnabled ())
208
  {
208
  {
209
    udpHeader.EnableChecksums();
209
    udpHeader.EnableChecksums();
210
  }
210
  }
 Lines 243-249    Link Here 
243
  NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport);
243
  NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport);
244
244
245
  UdpHeader udpHeader;
245
  UdpHeader udpHeader;
246
  if(m_calcChecksum)
246
  if(m_calcChecksum || Node::ChecksumEnabled ())
247
  {
247
  {
248
    udpHeader.EnableChecksums();
248
    udpHeader.EnableChecksums();
249
    udpHeader.InitializeChecksum (saddr,
249
    udpHeader.InitializeChecksum (saddr,
 Lines 272-278    Link Here 
272
  NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport);
272
  NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport);
273
273
274
  UdpHeader udpHeader;
274
  UdpHeader udpHeader;
275
  if(m_calcChecksum)
275
  if(m_calcChecksum || Node::ChecksumEnabled ())
276
  {
276
  {
277
    udpHeader.EnableChecksums();
277
    udpHeader.EnableChecksums();
278
    udpHeader.InitializeChecksum (saddr,
278
    udpHeader.InitializeChecksum (saddr,
(-)a/src/node/node.cc (+15 lines)
 Lines 28-33    Link Here 
28
#include "ns3/uinteger.h"
28
#include "ns3/uinteger.h"
29
#include "ns3/log.h"
29
#include "ns3/log.h"
30
#include "ns3/assert.h"
30
#include "ns3/assert.h"
31
#include "ns3/global-value.h"
32
#include "ns3/boolean.h"
31
33
32
NS_LOG_COMPONENT_DEFINE ("Node");
34
NS_LOG_COMPONENT_DEFINE ("Node");
33
35
 Lines 35-40    Link Here 
35
37
36
NS_OBJECT_ENSURE_REGISTERED (Node);
38
NS_OBJECT_ENSURE_REGISTERED (Node);
37
39
40
GlobalValue g_checksumEnabled  = GlobalValue ("ChecksumEnabled",
41
                                              "A global switch to enable all checksums for all protocols",
42
                                              BooleanValue (false),
43
                                              MakeBooleanChecker ());
44
38
TypeId 
45
TypeId 
39
Node::GetTypeId (void)
46
Node::GetTypeId (void)
40
{
47
{
 Lines 223-228    Link Here 
223
}
230
}
224
231
225
bool
232
bool
233
Node::ChecksumEnabled (void)
234
{
235
  BooleanValue val;
236
  g_checksumEnabled.GetValue (val);
237
  return val.Get ();
238
}
239
240
bool
226
Node::PromiscReceiveFromDevice (Ptr<NetDevice> device, Ptr<const Packet> packet, uint16_t protocol,
241
Node::PromiscReceiveFromDevice (Ptr<NetDevice> device, Ptr<const Packet> packet, uint16_t protocol,
227
                                const Address &from, const Address &to, NetDevice::PacketType packetType)
242
                                const Address &from, const Address &to, NetDevice::PacketType packetType)
228
{
243
{
(-)a/src/node/node.h (+6 lines)
 Lines 172-177    Link Here 
172
   */
172
   */
173
  void UnregisterProtocolHandler (ProtocolHandler handler);
173
  void UnregisterProtocolHandler (ProtocolHandler handler);
174
174
175
  
176
  /**
177
   * \returns true if checksums are enabled, false otherwise.
178
   */
179
  static bool ChecksumEnabled (void);
180
175
181
176
protected:
182
protected:
177
  /**
183
  /**

Return to bug 491