20 #include "ns3/uinteger.h"
21 #include "ns3/buffer.h"
22 #include "ns3/header.h"
23 #include "pcap-file-wrapper.h"
29 NS_OBJECT_ENSURE_REGISTERED (PcapFileWrapper);
32 PcapFileWrapper::GetTypeId (
void)
34 static TypeId tid = TypeId (
"ns3::PcapFileWrapper")
36 .AddConstructor<PcapFileWrapper> ()
37 .AddAttribute (
"CaptureSize",
38 "Maximum length of captured packets (cf. pcap snaplen)",
40 MakeUintegerAccessor (&PcapFileWrapper::m_snapLen),
47 PcapFileWrapper::PcapFileWrapper ()
52 PcapFileWrapper::~PcapFileWrapper ()
63 return m_file.
Fail ();
89 m_file.
Open (filename, mode);
101 if (snapLen != std::numeric_limits<uint32_t>::max ())
103 m_file.
Init (dataLinkType, snapLen, tzCorrection);
107 m_file.
Init (dataLinkType, m_snapLen, tzCorrection);
116 uint64_t s = current / 1000000;
117 uint64_t us = current % 1000000;
119 m_file.
Write (s, us, p);
127 uint64_t s = current / 1000000;
128 uint64_t us = current % 1000000;
130 m_file.
Write (s, us, header, p);
138 uint64_t s = current / 1000000;
139 uint64_t us = current % 1000000;
141 m_file.
Write (s, us, buffer, length);
145 PcapFileWrapper::GetMagic (
void)
148 return m_file.GetMagic ();
152 PcapFileWrapper::GetVersionMajor (
void)
155 return m_file.GetVersionMajor ();
159 PcapFileWrapper::GetVersionMinor (
void)
162 return m_file.GetVersionMinor ();
166 PcapFileWrapper::GetTimeZoneOffset (
void)
169 return m_file.GetTimeZoneOffset ();
173 PcapFileWrapper::GetSigFigs (
void)
176 return m_file.GetSigFigs ();
180 PcapFileWrapper::GetSnapLen (
void)
183 return m_file.GetSnapLen ();
187 PcapFileWrapper::GetDataLinkType (
void)
190 return m_file.GetDataLinkType ();
#define NS_LOG_FUNCTION(parameters)
void Write(Time t, Ptr< const Packet > p)
Write the next packet to file.
void Init(uint32_t dataLinkType, uint32_t snapLen=std::numeric_limits< uint32_t >::max(), int32_t tzCorrection=PcapFile::ZONE_DEFAULT)
#define NS_LOG_COMPONENT_DEFINE(name)
int64_t GetMicroSeconds(void) const
void Open(std::string const &filename, std::ios::openmode mode)
static const uint32_t SNAPLEN_DEFAULT
void Init(uint32_t dataLinkType, uint32_t snapLen=SNAPLEN_DEFAULT, int32_t timeZoneCorrection=ZONE_DEFAULT, bool swapMode=false)
void Open(std::string const &filename, std::ios::openmode mode)
void Write(uint32_t tsSec, uint32_t tsUsec, uint8_t const *const data, uint32_t totalLen)
Write next packet to file.