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

(-)a/bindings/python/ns3_module_internet_stack.py (-1 / +1 lines)
 Lines 12-18   def register_types(module): Link Here 
12
    ## icmpv4.h: ns3::Icmpv4Header [class]
12
    ## icmpv4.h: ns3::Icmpv4Header [class]
13
    module.add_class('Icmpv4Header', parent=root_module['ns3::Header'])
13
    module.add_class('Icmpv4Header', parent=root_module['ns3::Header'])
14
    ## icmpv4.h: ns3::Icmpv4Header [enumeration]
14
    ## icmpv4.h: ns3::Icmpv4Header [enumeration]
15
    module.add_enum('', ['ECHO_REPLY', 'DEST_UNREACH', 'ECHO', 'TIME_EXCEEDED'], outer_class=root_module['ns3::Icmpv4Header'])
15
    module.add_enum('', ['ICMP_ECHO_REPLY', 'ICMP_DEST_UNREACH', 'ICMP_ECHO', 'ICMP_TIME_EXCEEDED'], outer_class=root_module['ns3::Icmpv4Header'])
16
    ## icmpv4.h: ns3::Icmpv4TimeExceeded [class]
16
    ## icmpv4.h: ns3::Icmpv4TimeExceeded [class]
17
    module.add_class('Icmpv4TimeExceeded', parent=root_module['ns3::Header'])
17
    module.add_class('Icmpv4TimeExceeded', parent=root_module['ns3::Header'])
18
    ## icmpv4.h: ns3::Icmpv4TimeExceeded [enumeration]
18
    ## icmpv4.h: ns3::Icmpv4TimeExceeded [enumeration]
(-)a/bindings/python/ns3modulegen.py (+5 lines)
 Lines 131-136   def main(): Link Here 
131
        for clsname in ['SystemThread', 'SystemMutex', 'SystemCondition', 'CriticalSection']:
131
        for clsname in ['SystemThread', 'SystemMutex', 'SystemCondition', 'CriticalSection']:
132
            root_module.classes.remove(root_module['ns3::%s' % clsname])
132
            root_module.classes.remove(root_module['ns3::%s' % clsname])
133
133
134
135
    if 'EmuNetDevice' not in enabled_features:
136
        for clsname in ['EmuNetDevice', 'EmuHelper']:
137
            root_module.classes.remove(root_module['ns3::%s' % clsname])
138
134
    if 'RealTime' not in enabled_features:
139
    if 'RealTime' not in enabled_features:
135
        for clsname in ['WallClockSynchronizer', 'RealtimeSimulatorImpl', 'RealtimeEventLock']:
140
        for clsname in ['WallClockSynchronizer', 'RealtimeSimulatorImpl', 'RealtimeEventLock']:
136
            root_module.classes.remove(root_module['ns3::%s' % clsname])
141
            root_module.classes.remove(root_module['ns3::%s' % clsname])
(-)a/src/applications/v4ping/v4ping.cc (-2 / +2 lines)
 Lines 80-86   V4Ping::Receive (Ptr<Socket> socket) Link Here 
80
      NS_ASSERT (ipv4.GetProtocol () == 1); // protocol should be icmp.
80
      NS_ASSERT (ipv4.GetProtocol () == 1); // protocol should be icmp.
81
      Icmpv4Header icmp;
81
      Icmpv4Header icmp;
82
      p->RemoveHeader (icmp);
82
      p->RemoveHeader (icmp);
83
      if (icmp.GetType () == Icmpv4Header::ECHO_REPLY)
83
      if (icmp.GetType () == Icmpv4Header::ICMP_ECHO_REPLY)
84
	{
84
	{
85
	  Icmpv4Echo echo;
85
	  Icmpv4Echo echo;
86
	  p->RemoveHeader (echo);
86
	  p->RemoveHeader (echo);
 Lines 139-145   V4Ping::StartApplication (void) Link Here 
139
  echo.SetData (dataPacket);
139
  echo.SetData (dataPacket);
140
  p->AddHeader (echo);
140
  p->AddHeader (echo);
141
  Icmpv4Header header;
141
  Icmpv4Header header;
142
  header.SetType (Icmpv4Header::ECHO);
142
  header.SetType (Icmpv4Header::ICMP_ECHO);
143
  header.SetCode (0);
143
  header.SetCode (0);
144
  p->AddHeader (header);
144
  p->AddHeader (header);
145
  m_socket->Send (p, 0);
145
  m_socket->Send (p, 0);
(-)a/src/devices/emu/wscript (-1 / +1 lines)
 Lines 6-12   def configure(conf): Link Here 
6
    e.name = 'linux/if_ether.h'
6
    e.name = 'linux/if_ether.h'
7
    e.define = 'HAVE_IF_ETHER_H'
7
    e.define = 'HAVE_IF_ETHER_H'
8
    conf.env['ENABLE_EMU'] = e.run()
8
    conf.env['ENABLE_EMU'] = e.run()
9
    conf.report_optional_feature("Low Level Ethernet Defintions", "Emulated Net Device",
9
    conf.report_optional_feature("EmuNetDevice", "Emulated Net Device",
10
                                 conf.env['ENABLE_EMU'],
10
                                 conf.env['ENABLE_EMU'],
11
                                 "<linux/if_ether.h> include not detected")
11
                                 "<linux/if_ether.h> include not detected")
12
12
(-)a/src/internet-stack/icmpv4-l4-protocol.cc (-6 / +6 lines)
 Lines 112-118   Icmpv4L4Protocol::SendDestUnreach (Ipv4H Link Here 
112
  unreach.SetHeader (header);
112
  unreach.SetHeader (header);
113
  unreach.SetData (orgData);
113
  unreach.SetData (orgData);
114
  p->AddHeader (unreach);
114
  p->AddHeader (unreach);
115
  SendMessage (p, header.GetSource (), Icmpv4Header::DEST_UNREACH, code);
115
  SendMessage (p, header.GetSource (), Icmpv4Header::ICMP_DEST_UNREACH, code);
116
}
116
}
117
117
118
void 
118
void 
 Lines 124-130   Icmpv4L4Protocol::SendTimeExceededTtl (I Link Here 
124
  time.SetHeader (header);
124
  time.SetHeader (header);
125
  time.SetData (orgData);
125
  time.SetData (orgData);
126
  p->AddHeader (time);
126
  p->AddHeader (time);
127
  SendMessage (p, header.GetSource (), Icmpv4Header::TIME_EXCEEDED, Icmpv4TimeExceeded::TIME_TO_LIVE);
127
  SendMessage (p, header.GetSource (), Icmpv4Header::ICMP_TIME_EXCEEDED, Icmpv4TimeExceeded::TIME_TO_LIVE);
128
}
128
}
129
129
130
void
130
void
 Lines 139-145   Icmpv4L4Protocol::HandleEcho (Ptr<Packet Link Here 
139
  Icmpv4Echo echo;
139
  Icmpv4Echo echo;
140
  p->RemoveHeader (echo);
140
  p->RemoveHeader (echo);
141
  reply->AddHeader (echo);
141
  reply->AddHeader (echo);
142
  SendMessage (reply, destination, source, Icmpv4Header::ECHO_REPLY, 0);
142
  SendMessage (reply, destination, source, Icmpv4Header::ICMP_ECHO_REPLY, 0);
143
}
143
}
144
void
144
void
145
Icmpv4L4Protocol::Forward (Ipv4Address source, Icmpv4Header icmp,
145
Icmpv4L4Protocol::Forward (Ipv4Address source, Icmpv4Header icmp,
 Lines 197-209   Icmpv4L4Protocol::Receive(Ptr<Packet> p, Link Here 
197
  Icmpv4Header icmp;
197
  Icmpv4Header icmp;
198
  p->RemoveHeader (icmp);
198
  p->RemoveHeader (icmp);
199
  switch (icmp.GetType ()) {
199
  switch (icmp.GetType ()) {
200
  case Icmpv4Header::ECHO:
200
  case Icmpv4Header::ICMP_ECHO:
201
    HandleEcho (p, icmp, source, destination);
201
    HandleEcho (p, icmp, source, destination);
202
    break;
202
    break;
203
  case Icmpv4Header::DEST_UNREACH:
203
  case Icmpv4Header::ICMP_DEST_UNREACH:
204
    HandleDestUnreach (p, icmp, source, destination);
204
    HandleDestUnreach (p, icmp, source, destination);
205
    break;
205
    break;
206
  case Icmpv4Header::TIME_EXCEEDED:
206
  case Icmpv4Header::ICMP_TIME_EXCEEDED:
207
    HandleTimeExceeded (p, icmp, source, destination);
207
    HandleTimeExceeded (p, icmp, source, destination);
208
    break;
208
    break;
209
  default:
209
  default:
(-)a/src/internet-stack/icmpv4.h (-4 / +4 lines)
 Lines 14-23   class Icmpv4Header : public Header Link Here 
14
{
14
{
15
public:
15
public:
16
  enum {
16
  enum {
17
    ECHO_REPLY = 0,
17
    ICMP_ECHO_REPLY = 0,
18
    DEST_UNREACH = 3,
18
    ICMP_DEST_UNREACH = 3,
19
    ECHO = 8,
19
    ICMP_ECHO = 8,
20
    TIME_EXCEEDED = 11
20
    ICMP_TIME_EXCEEDED = 11
21
  };
21
  };
22
22
23
  void EnableChecksum (void);
23
  void EnableChecksum (void);

Return to bug 413