Ptr<Packet> p = Create<Packet> (buffer, size);
from ns.network import Packet
packet = Packet(1024)
FROM ubuntu:16.04
# Install requirementsRUN apt-get updateRUN apt-get -y install gcc g++ python python-dev python-pip python-setuptools mercurial git \ openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar \ gdb valgrind dia uncrustify flex bison libfl-dev tcpdump sqlite sqlite3 libsqlite3-dev \ libxml2 libxml2-dev cmake libc6-dev libc6-dev-i386 libclang-dev \ libgtk2.0-0 libgtk2.0-dev vtun lxc libboost-signals-dev libboost-filesystem-dev \ llvm-3.9 clang-3.9 llvm-3.9-dev clang-3.9-devRUN pip install -U pip && \ python -m pip install wheel && \ python -m pip install cxxfilt sphinx pygccxml
# Build CastXMLRUN mkdir -p /repos/CastXML-buildWORKDIR /reposRUN git clone https://github.com/CastXML/CastXML.gitWORKDIR /repos/CastXML-buildRUN cmake ../CastXMLRUN makeRUN make install
# Install PyBindGenWORKDIR /reposRUN git clone https://github.com/gjcarneiro/pybindgen.gitWORKDIR /repos/pybindgenRUN python setup.py install
# Build ns-3ADD ns-allinone-3.27-edited /ns-allinone-3.27WORKDIR /ns-allinone-3.27/ns-3.27RUN ./waf configureRUN ./waf buildRUN ./waf --apiscan=network --no32bit-scan
CMD ./waf shell
$ diff ns-allinone-3.27-edited/ns-3.27/src/network/model/packet.cc ns-allinone-3.27/ns-3.27/src/network/model/packet.cc197,210d196< Packet::Packet (const char *str, uint32_t size)< : m_buffer (),< m_byteTagList (),< m_packetTagList (),< m_metadata (static_cast<uint64_t> (Simulator::GetSystemId ()) << 32 | m_globalUid, size),< m_nixVector (0)< {< m_globalUid++;< m_buffer.AddAtStart (size);< Buffer::Iterator i = m_buffer.Begin ();< uint8_t *buffer = (uint8_t*) str;< i.Write (buffer, size);< }<374,382d359< std::string< Packet::GetString () const< {< uint8_t *buffer = new uint8_t[m_buffer.GetSize()];< m_buffer.CopyData (buffer, m_buffer.GetSize());< std::string data = std::string((char*)buffer);< return data;< }<
$ diff ns-allinone-3.27-edited/ns-3.27/src/network/model/packet.h ns-allinone-3.27/ns-3.27/src/network/model/packet.h287,288d286<< Packet (const char *str, uint32_t size);422,423d419< std::string GetString () const;<
# ./waf shell
# python
>>> from ns.network import Packet
>>> packet = Packet("aaa", 1024)
>>> packet.GetString()
'aaa'