TimeoutHeader and NonceHeader for Interest ns-3 packets

diff --git a/model/ndn_timeoutheader.cc b/model/ndn_timeoutheader.cc
new file mode 100644
index 0000000..77afdec
--- /dev/null
+++ b/model/ndn_timeoutheader.cc
@@ -0,0 +1,78 @@
+//
+//  ndn_timeoutheader.cpp
+//  Abstraction
+//
+//  Created by Ilya Moiseenko on 04.08.11.
+//  Copyright 2011 UCLA. All rights reserved.
+//
+
+#include "ndn_timeoutheader.h"
+
+namespace ns3 
+{
+namespace NDNabstraction
+{
+    NS_OBJECT_ENSURE_REGISTERED (TimeoutHeader);
+    
+    TimeoutHeader::TimeoutHeader()
+    {
+        m_value = 4000;
+    }
+    
+    TimeoutHeader::TimeoutHeader (uint32_t timeout) 
+    {
+        m_value = timeout;
+    }
+    
+    TypeId
+    TimeoutHeader::GetTypeId ()
+    {
+        static TypeId tid = TypeId ("ns3::NDNabstraction::TimeoutHeader")
+        .SetParent<Header> ()
+        .AddConstructor<TimeoutHeader> ()
+        ;
+        return tid;
+    }
+    
+    TypeId
+    TimeoutHeader::GetInstanceTypeId () const
+    {
+        return GetTypeId ();
+    }
+    
+    uint32_t
+    TimeoutHeader::GetSerializedSize () const
+    {
+        return 4;
+    }
+    
+    void
+    TimeoutHeader::Serialize (Buffer::Iterator i) const
+    {
+        i.WriteU32 ((uint32_t) m_value);
+    }
+    
+    uint32_t
+    TimeoutHeader::Deserialize (Buffer::Iterator start)
+    {
+        Buffer::Iterator i = start;
+        m_value = i.ReadU32 ();
+            
+        uint32_t dist = i.GetDistanceFrom (start);
+        NS_ASSERT (dist == GetSerializedSize ());
+        return dist;
+    }
+
+    void
+    TimeoutHeader::Print (std::ostream &os) const
+    {
+        os << m_value;
+    }
+    
+    uint32_t
+    TimeoutHeader::GetValue()
+    {
+        return m_value;
+    }
+}    
+}
\ No newline at end of file