[ndnSIM] Adding new field to Interest packet
Mateus Sousa
mateus.aluufc at gmail.com
Mon Oct 16 04:44:13 PDT 2017
*wireDEcode (before nonce): *
////////////////////////////////////////
// Mateus UFBA-Brazil-2017
////////////////////////////////////////
// NextForwarder
m_nextForwarder = m_wire.get(tlv::NextForwarder);
m_lastForwarder = m_wire.get(tlv::LastForwarder);
////////////////////////////////////////
// END MATEUS
////////////////////////////////////////
*wireEncode:* //////////////////////////////////////////////////
// My modifications (Mateus)
//////////////////////////////////////////////////
getNextForwarder();
getLastForwarder();
totalLength += encoder.prependBlock(m_lastForwarder);
totalLength += encoder.prependBlock(m_nextForwarder);
//////////////////////////////////////////////////
I tried to copy the Nonce settings.
Thanks,
2017-10-15 23:21 GMT-03:00 Spyridon (Spyros) Mastorakis <
mastorakis at cs.ucla.edu>:
> Hi,
>
> have you modified the wireEncode and wireDecode methods to encode/decode
> the field to/from wire format?
>
> Thanks,
>
> Spyridon (Spyros) Mastorakis
> Personal Website: http://cs.ucla.edu/~mastorakis/
> Internet Research Laboratory
> Computer Science Department
> UCLA
>
> On Oct 15, 2017, at 4:28 PM, Mateus Sousa <mateus.aluufc at gmail.com> wrote:
>
> Hi all,
>
> I added a new field to Interest packet by following the discussions:
> http://www.lists.cs.ucla.edu/pipermail/ndnsim/2015-July/002044.html and
> http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-March/003481.html.
>
> I created the field "NextForwarder" to point what node is the next
> forwarder to the interest. This field should be updated at every node (here
> is the problem).
>
> However, the alterations aren't persistent. The field value turns into "0"
> no matter what value I set.
>
> Here goes my modifications:
>
> * src/Interest.cpp: *
>
> Interest&
> Interest::setNextForwarder(uint32_t next) {
> if (m_wire.hasWire() && m_nextForwarder.value_size() ==
> sizeof(uint32_t)) {
> std::memcpy(const_cast<uint8_t*>(m_nextForwarder.value()),
> &next, sizeof(next));
> }
> else {
> m_nextForwarder = makeBinaryBlock(tlv::NextForwarder,
> reinterpret_cast<const uint8_t*>(&next),
> sizeof(next));
> m_wire.reset();
> }
> return *this;
> }
>
> uint32_t
> Interest::getNextForwarder() const{
> if (!m_nextForwarder.hasWire())
> const_cast<Interest*>(this)->setNextForwarder(9999);
>
> if (m_nextForwarder.value_size() == sizeof(uint32_t))
> return *reinterpret_cast<const uint32_t*>(m_nextForwarder.value());
> else {
> return readNonNegativeInteger(m_nextForwarder);
> }
> }
>
>
> * encoding/tlv.h*
> NextForwarder = 33, // X- Mateus
>
>
> Thanks in advance.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20171016/ed5f91cb/attachment.html>
More information about the ndnSIM
mailing list