NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
fields.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013-2019 Regents of the University of California.
4  *
5  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6  *
7  * ndn-cxx library is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License as published by the Free Software
9  * Foundation, either version 3 of the License, or (at your option) any later version.
10  *
11  * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13  * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14  *
15  * You should have received copies of the GNU General Public License and GNU Lesser
16  * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17  * <http://www.gnu.org/licenses/>.
18  *
19  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20  */
21 
22 #ifndef NDN_CXX_LP_FIELDS_HPP
23 #define NDN_CXX_LP_FIELDS_HPP
24 
26 
28 #include "ndn-cxx/lp/geo-tag.hpp"
31 
32 #include <boost/mpl/set.hpp>
33 
34 namespace ndn {
35 namespace lp {
36 
37 typedef FieldDecl<field_location_tags::Header,
38  Sequence,
40 BOOST_CONCEPT_ASSERT((Field<SequenceField>));
41 
43  uint64_t,
45  false,
46  NonNegativeIntegerTag,
47  NonNegativeIntegerTag> FragIndexField;
48 BOOST_CONCEPT_ASSERT((Field<FragIndexField>));
49 
51  uint64_t,
53  false,
54  NonNegativeIntegerTag,
55  NonNegativeIntegerTag> FragCountField;
56 BOOST_CONCEPT_ASSERT((Field<FragCountField>));
57 
59  std::pair<Buffer::const_iterator, Buffer::const_iterator>,
61 BOOST_CONCEPT_ASSERT((Field<PitTokenField>));
62 
64  NackHeader,
66 BOOST_CONCEPT_ASSERT((Field<NackField>));
67 
69  uint64_t,
71  false,
72  NonNegativeIntegerTag,
73  NonNegativeIntegerTag> NextHopFaceIdField;
74 BOOST_CONCEPT_ASSERT((Field<NextHopFaceIdField>));
75 
79 BOOST_CONCEPT_ASSERT((Field<CachePolicyField>));
80 
82  uint64_t,
84  false,
85  NonNegativeIntegerTag,
86  NonNegativeIntegerTag> IncomingFaceIdField;
87 BOOST_CONCEPT_ASSERT((Field<IncomingFaceIdField>));
88 
90  uint64_t,
92  false,
93  NonNegativeIntegerTag,
94  NonNegativeIntegerTag> CongestionMarkField;
95 BOOST_CONCEPT_ASSERT((Field<CongestionMarkField>));
96 
98  Sequence,
99  tlv::Ack,
100  true> AckField;
101 BOOST_CONCEPT_ASSERT((Field<AckField>));
102 
104  Sequence,
106 BOOST_CONCEPT_ASSERT((Field<TxSequenceField>));
107 
109  EmptyValue,
111 BOOST_CONCEPT_ASSERT((Field<NonDiscoveryField>));
112 
116 BOOST_CONCEPT_ASSERT((Field<PrefixAnnouncementField>));
117 
119  uint16_t,
121  false,
122  NonNegativeIntegerTag,
123  NonNegativeIntegerTag> HopCountTagField;
124 BOOST_CONCEPT_ASSERT((Field<HopCountTagField>));
125 
127  GeoTag,
129 BOOST_CONCEPT_ASSERT((Field<GeoTagField>));
130 
137  std::pair<Buffer::const_iterator, Buffer::const_iterator>,
139 BOOST_CONCEPT_ASSERT((Field<FragmentField>));
140 
143 typedef boost::mpl::set<
149  NackField,
154  AckField,
161 
162 } // namespace lp
163 } // namespace ndn
164 
165 #endif // NDN_CXX_LP_FIELDS_HPP
ndn::lp::PrefixAnnouncementField
FieldDecl< field_location_tags::Header, PrefixAnnouncementHeader, tlv::PrefixAnnouncement > PrefixAnnouncementField
Definition: fields.hpp:115
ndn::lp::tlv::Nack
@ Nack
Definition: tlv.hpp:42
ndn::lp::tlv::TxSequence
@ TxSequence
Definition: tlv.hpp:50
ndn::lp::FragCountField
FieldDecl< field_location_tags::Header, uint64_t, tlv::FragCount, false, NonNegativeIntegerTag, NonNegativeIntegerTag > FragCountField
Definition: fields.hpp:55
ndn::lp::NackHeader
represents a Network NACK header
Definition: nack-header.hpp:58
ndn::lp::NextHopFaceIdField
FieldDecl< field_location_tags::Header, uint64_t, tlv::NextHopFaceId, false, NonNegativeIntegerTag, NonNegativeIntegerTag > NextHopFaceIdField
Definition: fields.hpp:73
ndn::lp::PitTokenField
FieldDecl< field_location_tags::Header, std::pair< Buffer::const_iterator, Buffer::const_iterator >, tlv::PitToken > PitTokenField
Definition: fields.hpp:60
geo-tag.hpp
ndn::lp::tlv::GeoTag
@ GeoTag
Definition: tlv.hpp:39
ndn::lp::NackField
FieldDecl< field_location_tags::Header, NackHeader, tlv::Nack > NackField
Definition: fields.hpp:65
ndn::lp::NonDiscoveryField
FieldDecl< field_location_tags::Header, EmptyValue, tlv::NonDiscovery > NonDiscoveryField
Definition: fields.hpp:110
ndn::lp::FragIndexField
FieldDecl< field_location_tags::Header, uint64_t, tlv::FragIndex, false, NonNegativeIntegerTag, NonNegativeIntegerTag > FragIndexField
Definition: fields.hpp:47
ndn::lp::tlv::NextHopFaceId
@ NextHopFaceId
Definition: tlv.hpp:44
ndn::lp::FieldSet
boost::mpl::set< FragmentField, SequenceField, FragIndexField, FragCountField, PitTokenField, NackField, NextHopFaceIdField, IncomingFaceIdField, CachePolicyField, CongestionMarkField, AckField, TxSequenceField, NonDiscoveryField, PrefixAnnouncementField, HopCountTagField, GeoTagField > FieldSet
Set of all field declarations.
Definition: fields.hpp:160
field-decl.hpp
ndn::lp::SequenceField
FieldDecl< field_location_tags::Header, Sequence, tlv::Sequence > SequenceField
Definition: fields.hpp:39
ndn::lp::tlv::HopCountTag
@ HopCountTag
Definition: tlv.hpp:38
ndn::lp::HopCountTagField
FieldDecl< field_location_tags::Header, uint16_t, tlv::HopCountTag, false, NonNegativeIntegerTag, NonNegativeIntegerTag > HopCountTagField
Definition: fields.hpp:123
ndn::lp::AckField
FieldDecl< field_location_tags::Header, Sequence, tlv::Ack, true > AckField
Definition: fields.hpp:100
ndn::lp::IncomingFaceIdField
FieldDecl< field_location_tags::Header, uint64_t, tlv::IncomingFaceId, false, NonNegativeIntegerTag, NonNegativeIntegerTag > IncomingFaceIdField
Definition: fields.hpp:86
cache-policy.hpp
ndn::lp::FieldDecl
Declare a field.
Definition: field-decl.hpp:180
ndn::lp::CachePolicyField
FieldDecl< field_location_tags::Header, CachePolicy, tlv::CachePolicy > CachePolicyField
Definition: fields.hpp:78
ndn::lp::tlv::PitToken
@ PitToken
Definition: tlv.hpp:41
ndn::lp::field_location_tags::Header
a header field
Definition: field.hpp:45
nack-header.hpp
ndn::lp::CongestionMarkField
FieldDecl< field_location_tags::Header, uint64_t, tlv::CongestionMark, false, NonNegativeIntegerTag, NonNegativeIntegerTag > CongestionMarkField
Definition: fields.hpp:94
ndn::lp::GeoTagField
FieldDecl< field_location_tags::Header, GeoTag, tlv::GeoTag > GeoTagField
Definition: fields.hpp:128
ndn::lp::tlv::Fragment
@ Fragment
Definition: tlv.hpp:34
ndn::lp::tlv::FragCount
@ FragCount
Definition: tlv.hpp:37
ndn::lp::tlv::FragIndex
@ FragIndex
Definition: tlv.hpp:36
ndn::lp::tlv::Sequence
@ Sequence
Definition: tlv.hpp:35
ndn::lp::tlv::Ack
@ Ack
Definition: tlv.hpp:49
ndn::lp::tlv::NonDiscovery
@ NonDiscovery
Definition: tlv.hpp:51
ndn::lp::TxSequenceField
FieldDecl< field_location_tags::Header, Sequence, tlv::TxSequence > TxSequenceField
Definition: fields.hpp:105
ndn::lp::Field
concept check for fields
Definition: field.hpp:62
prefix-announcement-header.hpp
ndn::lp
Definition: cache-policy.cpp:28
ndn::lp::tlv::IncomingFaceId
@ IncomingFaceId
Definition: tlv.hpp:45
ndn::lp::PrefixAnnouncementHeader
represents a PrefixAnnouncement header field in NDNLP
Definition: prefix-announcement-header.hpp:33
ndn::lp::EmptyValue
represents a zero-length TLV-VALUE
Definition: empty-value.hpp:34
ndn::lp::FragmentField
FieldDecl< field_location_tags::Fragment, std::pair< Buffer::const_iterator, Buffer::const_iterator >, tlv::Fragment > FragmentField
Declare the Fragment field.
Definition: fields.hpp:138
ndn::lp::Sequence
uint64_t Sequence
represents a sequence number
Definition: sequence.hpp:35
ndn::lp::tlv::PrefixAnnouncement
@ PrefixAnnouncement
Definition: tlv.hpp:52
ndn::lp::tlv::CachePolicy
@ CachePolicy
Definition: tlv.hpp:46
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition: ndn-strategy-choice-helper.hpp:34
ndn::lp::tlv::CongestionMark
@ CongestionMark
Definition: tlv.hpp:48