src/internet-node/udp-l4-protocol.cc
changeset 2503 e667dc0f350e
parent 2326 eec07777d1a2
parent 2501 3eaeac1dd5ed
child 2592 3ebf97150166
--- a/src/internet-node/udp-l4-protocol.cc	Tue Feb 26 01:39:59 2008 +0100
+++ b/src/internet-node/udp-l4-protocol.cc	Wed Feb 27 22:19:39 2008 +0100
@@ -35,13 +35,28 @@
 
 namespace ns3 {
 
+NS_OBJECT_ENSURE_REGISTERED (UdpL4Protocol);
+
 /* see http://www.iana.org/assignments/protocol-numbers */
 const uint8_t UdpL4Protocol::PROT_NUMBER = 17;
 
-UdpL4Protocol::UdpL4Protocol (Ptr<Node> node)
-  : Ipv4L4Protocol (PROT_NUMBER, 2),
-    m_node (node),
-    m_endPoints (new Ipv4EndPointDemux ())
+TypeId 
+UdpL4Protocol::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("UdpL4Protocol")
+    .SetParent<Ipv4L4Protocol> ()
+    .AddConstructor<UdpL4Protocol> ()
+    .AddAttribute ("Node", "The node which contains this protocol.",
+                   TypeId::ATTR_GET | TypeId::ATTR_CONSTRUCT,
+                   Ptr<Node> (0),
+                   MakePtrAccessor (&UdpL4Protocol::m_node),
+                   MakePtrChecker<Node> ())
+    ;
+  return tid;
+}
+
+UdpL4Protocol::UdpL4Protocol ()
+  : m_endPoints (new Ipv4EndPointDemux ())
 {
   NS_LOG_FUNCTION;
 }
@@ -51,6 +66,18 @@
   NS_LOG_FUNCTION;
 }
 
+int 
+UdpL4Protocol::GetProtocolNumber (void) const
+{
+  return PROT_NUMBER;
+}
+int 
+UdpL4Protocol::GetVersion (void) const
+{
+  return 2;
+}
+
+
 void
 UdpL4Protocol::DoDispose (void)
 {