diff --git a/docs/source/ndnsim-packet-formats.rst b/docs/source/ndnsim-packet-formats.rst
new file mode 100644
index 0000000..e985f30
--- /dev/null
+++ b/docs/source/ndnsim-packet-formats.rst
@@ -0,0 +1,364 @@
+.. _ndnSIM packet format:
+
+ndnSIM packet format
+====================
+
+Basic field types
++++++++++++++++++
+
+::
+
+	uint8_t ::= 8-bit unsigned integer
+
+	uint16_t ::= 16-bit unsigned integer
+
+	uint32_t ::= 32-bit unsigned integer
+
+	CHAR ::= 8-bit binary data
+
+	Blob ::= Length CHAR{Length}
+
+	Length ::= uint16_t
+
+NDN Packet Type
++++++++++++++++
+
+::
+
+	Packet ::= Version 
+		   PacketType
+		   (Interest | ContentObject)
+
+        0                   1             
+        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |    Version    |   PacketType  |
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+For ccnb-encoding compatibility, ``Version`` / ``PacketType`` has two reserved values to denote ccnb-encoded packet:
+
+Version 0x01, PacketType 0xD2 --- ccnb-encoded ``Interest`` packet
+Version 0x04, PacketType 0x82 --- ccnb-encoded ``ContentObject`` packet
+
+
+Version
+~~~~~~~
+
+::
+
+	Version ::= uint8_t 
+
+The current version of the packet format.  Right only value 0x80 is allowed.
+
+PacketType
+~~~~~~~~~~
+
+::
+
+	PacketType ::= uint8_t  
+
+In the current version, two packet types are defined:
+
+- ``Interest`` (``PacketType`` = 0)
+- ``ContentObject`` (``PacketType`` = 1)
+
+Any other value of PacketType is invalid and such a packet should be discarded.
+
+Interest
+++++++++
+
+The objective of the new format is to optimize encoding/decoding operations.
+
+::
+
+	Interest ::= Nonce 
+	     	     Scope 
+		     InterestLifetime 
+	     	     Name 
+	     	     Selectors 
+	     	     Options
+
+Minumum size of the Interest packet: 1 + 4 + 2 + 1 + (2 + 0) + (2 + 0) + (2 + 0) = 14
+
+Maximum size of the Interest packet: 1 + 4 + 2 + 1 + (2 + 65535) + (2 + 65535) + (2 + 65535) = 196619
+
+::
+
+        0                   1                   2                   3
+        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |                          Nonce                                |
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |     Scope     |   Reserved    |      InterestLifetime         |
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
+        ~                                                               ~
+        ~                            Name                               ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
+        ~                                                               ~
+        ~                          Selectors                            ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
+        ~                                                               ~
+        ~                          Options                              ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Nonce
+~~~~~
+
+::
+
+	Nonce ::= uint32_t
+
+Reserved
+~~~~~~~~
+
+::
+
+	Reserved := uint8_t
+
+Currently does not have meaning and should be zero
+
+InterestLifetime
+~~~~~~~~~~~~~~~~
+
+::
+
+	InterestLifetime := uint16_t 
+
+Interest lifetime is specified in seconds.  Max value is about 18 hours.
+
+Scope
+~~~~~
+
+::
+
+	Scope ::= uint8_t 
+
+Scope 0 prevents propagation beyond the local ccnd (even to other applications on the same host). Scope 1 limits propagation to the applications on the originating host. Scope 2 limits propagation to no further than the next host.
+
+Name
+~~~~
+
+::
+
+	Name ::= Length (NameComponent)*
+
+	NameComponent ::= Blob
+
+
+Selectors
+~~~~~~~~~
+
+::
+
+	Selectors ::= Length (Selector)*
+
+	Selector ::= MinSuffixComponents | MaxSuffixComponents | Publisher | Exclude | ChildSelector | AnswerOriginKind
+
+All selectors are for now undefined
+
+Options
+~~~~~~~
+
+::
+
+	Options ::= Length (Option)*
+
+
+.. .................................................................................................. ..
+.. .................................................................................................. ..
+.. .................................................................................................. ..
+.. .................................................................................................. ..
+
+
+ContentObject
++++++++++++++
+
+::
+
+	ContentObject ::= Signature
+                	  Name
+                   	  Content
+
+::
+
+        0                   1                   2                   3
+        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
+        ~                                                               ~
+        ~                           Signature                           ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
+        ~                                                               ~
+        ~                             Name                              ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
+        ~                                                               ~
+        ~                           Content                             ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Signature
+~~~~~~~~~
+
+::
+
+	Signature ::= Length 
+		      SignatureType
+		      <type-dependeds signature data>
+
+Length specifies cumulative size of SignatureInfo and SignatureBits.  If SignatureType is not recognized, the received can either discard the packet or ignore the signature using Length field, specified combined length of SignatureType and SignatureType-dependent fields.
+
+::
+
+        0                   1                   2                   3
+        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |           Length              |         SignatureType         |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        ~                                                               ~
+        ~               <type-dependeds signature data>                 ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+SignatureType
+^^^^^^^^^^^^^
+
+::
+
+	SignatureType ::= uint16_t
+
+The current version specifies three type of signatures:
+
+- 0x0000: empty signature
+- 0x0001: SHA256 (not a real signature, but just a digest of the content)
+- 0x0002: SHA256withRSA (real public-key signature based on SHA-256 digest)
+
+Other values may be defined in future.
+
+- Values greater or equal to 0xFF00 are for experimental purposes (e.g., for simulations)
+
+<type-dependeds signature data>
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
++-------------------+---------------------------+
+| SignatureType     |  SignatureData definition |
++===================+===========================+
+| 0 (empty)         |  empty sequence           |
++-------------------+---------------------------+
+| 1 (sha256)        |  CHAR{32}                 |
++-------------------+---------------------------+
+| 2 (SHA256withRSA) |  CHAR{32} KeyLocator      |
++-------------------+---------------------------+
+
+KeyLocator
+^^^^^^^^^^
+
+::
+
+	KeyLocator ::= KeyLocatorType
+		       (Key | Certificate | KeyName)
+		       
+	Key ::= Blob
+	
+	Certificate ::= Blob
+	
+	KeyName ::= Name
+
+
+Content
+^^^^^^^
+
+::
+
+	Content ::= Length
+		    ContentInfo
+		    ContentData
+
+Content length can be computed as:  Length - (1 - ContentInfo.Length)
+
+::
+
+        0                   1                   2                   3
+        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |            Length             |       Length (content Info)   |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |                           Timestamp                           |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |           Freshness           |           Reserved            |
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |  Length (ContentInfoOptions)  |                               |
+	|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
+        ~                                                               ~
+        ~                       ContentInfoOptions                      ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        ~                                                               ~
+        ~                         ContentData                           ~
+        |							        |	
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+ContentInfo
+^^^^^^^^^^^
+
+::
+
+	ContentInfo ::= Length 
+			Timestamp
+			Freshness
+			ContentOptions
+
+Timestamp
+~~~~~~~~~
+
+::
+
+	Timestamp ::= uint32_t
+
+Timestamp specifies content generation time as Unix time timestamp (number of seconds since midnight 1/1/1970).
+
+Freshness
+~~~~~~~~~
+
+::
+
+	Freshness ::= uint16_t
+
+Freshness specifies time in seconds (since Timestamp) for which the content is considered valid.  
+
+Value 0xFFFF means that content is always valid.
+
+
+ContentOptions
+~~~~~~~~~~~~~~
+
+::
+
+	ContentOptions ::= Length
+			   ContentOption*
+
+	ContentOption ::= Type |
+			  FinalBlockID
+
+
+Not currently defined
+
