NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::lp Namespace Reference

Namespaces

 field_location_tags
 indicates where a field may occur
 
 tlv
 

Classes

class  CachePolicy
 represents a CachePolicy header field More...
 
struct  DecodeHelper
 
struct  DecodeHelper< TlvType, EmptyValue >
 
struct  DecodeHelper< TlvType, NonNegativeIntegerTag >
 
struct  DecodeHelper< TlvType, std::pair< Buffer::const_iterator, Buffer::const_iterator > >
 
struct  DecodeHelper< TlvType, uint64_t >
 
struct  EmptyValue
 represents a zero-length TLV-VALUE More...
 
struct  EncodeHelper
 
struct  EncodeHelper< TAG, TlvType, EmptyValue >
 
struct  EncodeHelper< TAG, TlvType, NonNegativeIntegerTag >
 
struct  EncodeHelper< TAG, TlvType, std::pair< Buffer::const_iterator, Buffer::const_iterator > >
 
struct  EncodeHelper< TAG, TlvType, uint64_t >
 
struct  Field
 concept check for fields More...
 
class  FieldDecl
 Declare a field. More...
 
class  GeoTag
 represents a GeoTag header field More...
 
class  Nack
 represents a Network Nack More...
 
class  NackHeader
 represents a Network NACK header More...
 
class  Packet
 
class  PitToken
 represent a PIT token field More...
 
class  PrefixAnnouncementHeader
 represents a PrefixAnnouncement header field in NDNLP More...
 

Typedefs

typedef FieldDecl< field_location_tags::Header, Sequence, tlv::SequenceSequenceField
 
typedef FieldDecl< field_location_tags::Header, uint64_t, tlv::FragIndex, false, NonNegativeIntegerTag, NonNegativeIntegerTag > FragIndexField
 
typedef FieldDecl< field_location_tags::Header, uint64_t, tlv::FragCount, false, NonNegativeIntegerTag, NonNegativeIntegerTag > FragCountField
 
typedef FieldDecl< field_location_tags::Header, std::pair< Buffer::const_iterator, Buffer::const_iterator >, tlv::PitTokenPitTokenField
 
typedef FieldDecl< field_location_tags::Header, NackHeader, tlv::NackNackField
 
typedef FieldDecl< field_location_tags::Header, uint64_t, tlv::NextHopFaceId, false, NonNegativeIntegerTag, NonNegativeIntegerTag > NextHopFaceIdField
 
typedef FieldDecl< field_location_tags::Header, CachePolicy, tlv::CachePolicyCachePolicyField
 
typedef FieldDecl< field_location_tags::Header, uint64_t, tlv::IncomingFaceId, false, NonNegativeIntegerTag, NonNegativeIntegerTag > IncomingFaceIdField
 
typedef FieldDecl< field_location_tags::Header, uint64_t, tlv::CongestionMark, false, NonNegativeIntegerTag, NonNegativeIntegerTag > CongestionMarkField
 
typedef FieldDecl< field_location_tags::Header, Sequence, tlv::Ack, true > AckField
 
typedef FieldDecl< field_location_tags::Header, Sequence, tlv::TxSequenceTxSequenceField
 
typedef FieldDecl< field_location_tags::Header, EmptyValue, tlv::NonDiscoveryNonDiscoveryField
 
typedef FieldDecl< field_location_tags::Header, PrefixAnnouncementHeader, tlv::PrefixAnnouncementPrefixAnnouncementField
 
typedef FieldDecl< field_location_tags::Header, uint16_t, tlv::HopCountTag, false, NonNegativeIntegerTag, NonNegativeIntegerTag > HopCountTagField
 
typedef FieldDecl< field_location_tags::Header, GeoTag, tlv::GeoTagGeoTagField
 
typedef FieldDecl< field_location_tags::Fragment, std::pair< Buffer::const_iterator, Buffer::const_iterator >, tlv::FragmentFragmentField
 Declare the Fragment field. More...
 
typedef boost::mpl::set< FragmentField, SequenceField, FragIndexField, FragCountField, PitTokenField, NackField, NextHopFaceIdField, IncomingFaceIdField, CachePolicyField, CongestionMarkField, AckField, TxSequenceField, NonDiscoveryField, PrefixAnnouncementField, HopCountTagField, GeoTagFieldFieldSet
 Set of all field declarations. More...
 
typedef uint64_t Sequence
 represents a sequence number More...
 
typedef SimpleTag< uint64_t, 10 > IncomingFaceIdTag
 
typedef SimpleTag< uint64_t, 11 > NextHopFaceIdTag
 
typedef SimpleTag< CachePolicy, 12 > CachePolicyTag
 
typedef SimpleTag< uint64_t, 13 > CongestionMarkTag
 
typedef SimpleTag< EmptyValue, 14 > NonDiscoveryTag
 
typedef SimpleTag< PrefixAnnouncementHeader, 15 > PrefixAnnouncementTag
 
typedef SimpleTag< uint64_t, 0x60000000 > HopCountTag
 

Enumerations

enum  CachePolicyType { CachePolicyType::NONE = 0, CachePolicyType::NO_CACHE = 1 }
 indicates the cache policy applied to a Data packet More...
 
enum  NackReason { NackReason::NONE = 0, NackReason::CONGESTION = 50, NackReason::DUPLICATE = 100, NackReason::NO_ROUTE = 150 }
 indicates the reason type of a network NACK More...
 

Functions

std::ostream & operator<< (std::ostream &os, CachePolicyType policy)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (CachePolicy)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (CachePolicy)
 
template size_t GeoTag::wireEncode< encoding::EncoderTag > (EncodingImpl< encoding::EncoderTag > &encoder) const
 
template size_t GeoTag::wireEncode< encoding::EstimatorTag > (EncodingImpl< encoding::EstimatorTag > &encoder) const
 
std::ostream & operator<< (std::ostream &os, NackReason reason)
 
bool isLessSevere (lp::NackReason x, lp::NackReason y)
 compare NackReason for severity More...
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (NackHeader)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (NackHeader)
 
std::ostream & operator<< (std::ostream &os, const PitToken &pitToken)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (PrefixAnnouncementHeader)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (PrefixAnnouncementHeader)
 

Variables

 Field< SequenceField >
 
 Field< FragIndexField >
 
 Field< FragCountField >
 
 Field< PitTokenField >
 
 Field< NackField >
 
 Field< NextHopFaceIdField >
 
 Field< CachePolicyField >
 
 Field< IncomingFaceIdField >
 
 Field< CongestionMarkField >
 
 Field< AckField >
 
 Field< TxSequenceField >
 
 Field< NonDiscoveryField >
 
 Field< PrefixAnnouncementField >
 
 Field< HopCountTagField >
 
 Field< GeoTagField >
 
 Field< FragmentField >
 
static constexpr size_t LENGTH_MIN = 1
 
static constexpr size_t LENGTH_MAX = 32
 

Typedef Documentation

◆ SequenceField

◆ FragIndexField

typedef FieldDecl<field_location_tags::Header, uint64_t, tlv::FragIndex, false, NonNegativeIntegerTag, NonNegativeIntegerTag> ndn::lp::FragIndexField

Definition at line 47 of file fields.hpp.

◆ FragCountField

typedef FieldDecl<field_location_tags::Header, uint64_t, tlv::FragCount, false, NonNegativeIntegerTag, NonNegativeIntegerTag> ndn::lp::FragCountField

Definition at line 55 of file fields.hpp.

◆ PitTokenField

typedef FieldDecl<field_location_tags::Header, std::pair<Buffer::const_iterator, Buffer::const_iterator>, tlv::PitToken> ndn::lp::PitTokenField

Definition at line 60 of file fields.hpp.

◆ NackField

◆ NextHopFaceIdField

typedef FieldDecl<field_location_tags::Header, uint64_t, tlv::NextHopFaceId, false, NonNegativeIntegerTag, NonNegativeIntegerTag> ndn::lp::NextHopFaceIdField

Definition at line 73 of file fields.hpp.

◆ CachePolicyField

◆ IncomingFaceIdField

typedef FieldDecl<field_location_tags::Header, uint64_t, tlv::IncomingFaceId, false, NonNegativeIntegerTag, NonNegativeIntegerTag> ndn::lp::IncomingFaceIdField

Definition at line 86 of file fields.hpp.

◆ CongestionMarkField

typedef FieldDecl<field_location_tags::Header, uint64_t, tlv::CongestionMark, false, NonNegativeIntegerTag, NonNegativeIntegerTag> ndn::lp::CongestionMarkField

Definition at line 94 of file fields.hpp.

◆ AckField

◆ TxSequenceField

◆ NonDiscoveryField

◆ PrefixAnnouncementField

◆ HopCountTagField

typedef FieldDecl<field_location_tags::Header, uint16_t, tlv::HopCountTag, false, NonNegativeIntegerTag, NonNegativeIntegerTag> ndn::lp::HopCountTagField

Definition at line 123 of file fields.hpp.

◆ GeoTagField

◆ FragmentField

typedef FieldDecl<field_location_tags::Fragment, std::pair<Buffer::const_iterator, Buffer::const_iterator>, tlv::Fragment> ndn::lp::FragmentField

Declare the Fragment field.

The fragment (i.e. payload) is the bytes between two provided iterators. During encoding, these bytes are copied from the Buffer into the LpPacket.

Definition at line 138 of file fields.hpp.

◆ FieldSet

◆ Sequence

typedef uint64_t ndn::lp::Sequence

represents a sequence number

Definition at line 35 of file sequence.hpp.

◆ IncomingFaceIdTag

typedef SimpleTag<uint64_t, 10> ndn::lp::IncomingFaceIdTag

Definition at line 39 of file tags.hpp.

◆ NextHopFaceIdTag

typedef SimpleTag<uint64_t, 11> ndn::lp::NextHopFaceIdTag

Definition at line 46 of file tags.hpp.

◆ CachePolicyTag

Definition at line 53 of file tags.hpp.

◆ CongestionMarkTag

typedef SimpleTag<uint64_t, 13> ndn::lp::CongestionMarkTag

Definition at line 60 of file tags.hpp.

◆ NonDiscoveryTag

Definition at line 67 of file tags.hpp.

◆ PrefixAnnouncementTag

◆ HopCountTag

typedef SimpleTag<uint64_t, 0x60000000> ndn::lp::HopCountTag

Definition at line 81 of file tags.hpp.

Enumeration Type Documentation

◆ CachePolicyType

indicates the cache policy applied to a Data packet

Enumerator
NONE 
NO_CACHE 

Definition at line 36 of file cache-policy.hpp.

◆ NackReason

enum ndn::lp::NackReason
strong

indicates the reason type of a network NACK

Enumerator
NONE 
CONGESTION 
DUPLICATE 
NO_ROUTE 

Definition at line 37 of file nack-header.hpp.

Function Documentation

◆ operator<<() [1/3]

std::ostream & ndn::lp::operator<< ( std::ostream &  os,
CachePolicyType  policy 
)

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [1/3]

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [1/3]

ndn::lp::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( CachePolicy  )

◆ GeoTag::wireEncode< encoding::EncoderTag >()

◆ GeoTag::wireEncode< encoding::EstimatorTag >()

◆ operator<<() [2/3]

std::ostream & ndn::lp::operator<< ( std::ostream &  os,
NackReason  reason 
)

Definition at line 30 of file nack-header.cpp.

References CONGESTION, DUPLICATE, and NO_ROUTE.

◆ isLessSevere()

bool ndn::lp::isLessSevere ( lp::NackReason  x,
lp::NackReason  y 
)

compare NackReason for severity

lp::NackReason::NONE is treated as most severe

Definition at line 45 of file nack-header.cpp.

References NONE, and ndn::to_underlying().

Referenced by nfd::fw::ProcessNackTraitsBase::processNack(), and ndn::PendingInterest::recordNack().

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [2/3]

ndn::lp::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( NackHeader  )

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [2/3]

ndn::lp::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( NackHeader  )

◆ operator<<() [3/3]

std::ostream & ndn::lp::operator<< ( std::ostream &  os,
const PitToken pitToken 
)

Definition at line 42 of file pit-token.cpp.

References ndn::printHex().

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [3/3]

ndn::lp::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( PrefixAnnouncementHeader  )

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [3/3]

ndn::lp::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( PrefixAnnouncementHeader  )

Variable Documentation

◆ Field< SequenceField >

Definition at line 40 of file fields.hpp.

◆ Field< FragIndexField >

Definition at line 48 of file fields.hpp.

◆ Field< FragCountField >

Definition at line 56 of file fields.hpp.

◆ Field< PitTokenField >

Definition at line 61 of file fields.hpp.

◆ Field< NackField >

Definition at line 66 of file fields.hpp.

◆ Field< NextHopFaceIdField >

Definition at line 74 of file fields.hpp.

◆ Field< CachePolicyField >

Definition at line 79 of file fields.hpp.

◆ Field< IncomingFaceIdField >

Definition at line 87 of file fields.hpp.

◆ Field< CongestionMarkField >

Definition at line 95 of file fields.hpp.

◆ Field< AckField >

Definition at line 101 of file fields.hpp.

◆ Field< TxSequenceField >

Definition at line 106 of file fields.hpp.

◆ Field< NonDiscoveryField >

Definition at line 111 of file fields.hpp.

◆ Field< PrefixAnnouncementField >

Definition at line 116 of file fields.hpp.

◆ Field< HopCountTagField >

Definition at line 124 of file fields.hpp.

◆ Field< GeoTagField >

Definition at line 129 of file fields.hpp.

◆ Field< FragmentField >

Definition at line 139 of file fields.hpp.

◆ LENGTH_MIN

constexpr size_t ndn::lp::LENGTH_MIN = 1
static

Definition at line 29 of file pit-token.cpp.

◆ LENGTH_MAX

constexpr size_t ndn::lp::LENGTH_MAX = 32
static

Definition at line 30 of file pit-token.cpp.