mgmt: add Mtu to faces/create and FaceStatus
refs #4005
Change-Id: I26c02aa088dc59aecd331cd579036177fef0f64c
diff --git a/src/mgmt/nfd/control-parameters.hpp b/src/mgmt/nfd/control-parameters.hpp
index c325e0b..2291096 100644
--- a/src/mgmt/nfd/control-parameters.hpp
+++ b/src/mgmt/nfd/control-parameters.hpp
@@ -49,6 +49,7 @@
CONTROL_PARAMETER_FACE_PERSISTENCY,
CONTROL_PARAMETER_BASE_CONGESTION_MARKING_INTERVAL,
CONTROL_PARAMETER_DEFAULT_CONGESTION_THRESHOLD,
+ CONTROL_PARAMETER_MTU,
CONTROL_PARAMETER_UBOUND
};
@@ -67,7 +68,8 @@
"ExpirationPeriod",
"FacePersistency",
"BaseCongestionMarkingInterval",
- "DefaultCongestionThreshold"
+ "DefaultCongestionThreshold",
+ "Mtu"
};
/**
@@ -559,6 +561,44 @@
return *this;
}
+ bool
+ hasMtu() const
+ {
+ return m_hasFields[CONTROL_PARAMETER_MTU];
+ }
+
+ /** \brief get MTU (measured in bytes)
+ *
+ * This value is capped at MAX_NDN_PACKET_SIZE, even if the MTU of the face is unlimited.
+ */
+ uint64_t
+ getMtu() const
+ {
+ BOOST_ASSERT(this->hasMtu());
+ return m_mtu;
+ }
+
+ /** \brief set MTU (measured in bytes)
+ *
+ * This value is capped at MAX_NDN_PACKET_SIZE, even if the MTU of the face is unlimited.
+ */
+ ControlParameters&
+ setMtu(uint64_t mtu)
+ {
+ m_wire.reset();
+ m_mtu = mtu;
+ m_hasFields[CONTROL_PARAMETER_MTU] = true;
+ return *this;
+ }
+
+ ControlParameters&
+ unsetMtu()
+ {
+ m_wire.reset();
+ m_hasFields[CONTROL_PARAMETER_MTU] = false;
+ return *this;
+ }
+
const std::vector<bool>&
getPresentFields() const
{
@@ -615,6 +655,7 @@
FacePersistency m_facePersistency;
time::nanoseconds m_baseCongestionMarkingInterval;
uint64_t m_defaultCongestionThreshold;
+ uint64_t m_mtu;
private:
mutable Block m_wire;