Packets/DefaultBundle/MPSPacket: updated finalize method, enhanced unit test
[senf.git] / Packets / DefaultBundle / MPLSPacket.cc
index 86b3d7c..543d709 100644 (file)
 #include <iomanip>
 #include <boost/io/ios_state.hpp>
 
+#include "EthernetPacket.hh"
+
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
+
+namespace {
+    senf::PacketRegistry<senf::EtherTypes>::RegistrationProxy<senf::MPLSPacket>
+        registerMPLSPacket (0x8848);
+}
+
+
 // senf::MPLSPacketType
 
 prefix_ void senf::MPLSPacketType::dump(packet p, std::ostream & os)
@@ -54,6 +63,10 @@ prefix_ senf::PacketInterpreterBase::factory_t senf::MPLSPacketType::nextPacketT
 
 prefix_ void senf::MPLSPacketType::finalize(packet p)
 {
+    if (p.prev(senf::nothrow).is<MPLSPacket>()) //not the last label on the MPLS stack
+        p->s_() << false;
+    else
+        p->s_() << true;
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////