First step of refactoring code (ccnx prefix => ndn prefix)
diff --git a/helper/ndn-header-helper.h b/helper/ndn-header-helper.h
new file mode 100644
index 0000000..7f2e111
--- /dev/null
+++ b/helper/ndn-header-helper.h
@@ -0,0 +1,96 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef _NDN_HEADER_HELPER_H_
+#define _NDN_HEADER_HELPER_H_
+
+#include "ns3/ptr.h"
+
+#define INTEREST_BYTE0 0x01
+#define INTEREST_BYTE1 0xD2
+
+#define CONTENT_OBJECT_BYTE0 0x04
+#define CONTENT_OBJECT_BYTE1 0x82
+
+namespace ns3
+{
+
+class Header;
+class Packet;
+
+/**
+ * \ingroup ndn-helpers
+ *
+ * \brief Class implementing functionality to detect Ndn packet type and
+ * create the corresponding object
+ *
+ * Ndn doesn't really have a header, so we need this class to
+ * determine type of Ndn packet and return corresponent header class,
+ * NdnInterestHeader or NdnContentObjectHeader
+ *
+ * Throws NdnUnknownHeaderException if header type couldn't be determined
+ */
+class NdnHeaderHelper
+{
+public:
+  /**
+     @brief enum for Ndn packet types
+   */
+  enum Type {INTEREST, CONTENT_OBJECT}; 
+
+  /**
+   * Static function to create an appropriate Ndn header
+   *
+   * It peeks first 2 bytes of a packet.
+   *
+   *  All interests start with 
+   *   +-----------------+  +---+---------+-------+
+   *   | 0 0 0 0 0 0 0 1 |  | 1 | 1 0 1 0 | 0 1 0 |   (0x01 0xD2)
+   *   +-----------------+  +---+---------+-------+
+   *
+   *  All content objects start with 
+   *   +-----------------+  +---+---------+-------+
+   *   | 0 0 0 0 0 1 0 0 |  | 1 | 0 0 0 0 | 0 1 0 |   (0x04 0x82)
+   *   +-----------------+  +---+---------+-------+
+   *                          ^             ^^^^^
+   *                          |               |
+   *                      terminator      DTAG (Dictionary TAG)
+   *
+   * \see http://www.ndn.org/releases/latest/doc/technical/BinaryEncoding.html
+   */
+  
+  static Type
+  GetNdnHeaderType (Ptr<const Packet> packet);
+};
+
+  /**
+   * \ingroup ndn
+   * \defgroup ndn-exceptions Exceptions
+   */
+  /**
+   * \ingroup ndn-exceptions
+   * \brief Exception thrown if Ndn stack receives unrecognized
+   * message type
+   */
+class NdnUnknownHeaderException {};
+
+} // namespace ns3
+
+#endif // _NDN_HEADER_HELPER_H_