diff --git a/net/ndn-cpp-dev/Portfile b/net/ndn-cpp-dev/Portfile
deleted file mode 100644
index 06d33a3..0000000
--- a/net/ndn-cpp-dev/Portfile
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
-# $Id$
-
-PortSystem          1.0
-PortGroup           github 1.0
-
-github.setup        cawka ndn-cpp 196b9aa83eeefcfecf0f4a8baa47983001ae3829
-checksums           rmd160  be9fac56ba15a37a78b75475b3c79ef337538d5b \
-                    sha256  dec60fd99ac4d547156e0da2b670065a764a8cefbb941d8790133340249ef438
-
-name                ndn-cpp-dev
-homepage            https://github.com/cawka/ndn-cpp
-license             BSD
-version             0.2.3-rc1
-
-categories          net
-platforms           darwin
-maintainers         ucla.edu:alexander.afanasyev
-
-description         C++ development library for NDN
-
-long_description    C++ development library for NDN.
-
-depends_lib-append  port:boost \
-                    port:openssl \
-                    port:libcryptopp \
-                    port:sqlite3
-
-depends_build-append    port:pkgconfig
-
-use_configure           yes
-
-configure.cmd           ./waf configure
-
-build.cmd               ./waf
-build.target            build
-
-destroot.cmd            ./waf
-destroot.target         install
-destroot.destdir        --destdir=${destroot}
diff --git a/net/ndn-cxx/Portfile b/net/ndn-cxx/Portfile
new file mode 100644
index 0000000..afd5001
--- /dev/null
+++ b/net/ndn-cxx/Portfile
@@ -0,0 +1,43 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem          1.0
+PortGroup           github 1.0
+
+github.setup        named-data ndn-cxx ndn-cxx-0.1.0-rc1
+checksums           rmd160  630723ee5f1cac30eca5a5eb0a93b063b869afc9 \
+                    sha256  80db2472aad0f6852e542e34f509da72f759218997fd3df04a998eb4c1cbb299
+
+name                ndn-cxx
+homepage            http://named-data.net/doc/ndn-cxx/
+license             BSD
+version             0.1.0-rc1
+
+categories          net
+platforms           darwin
+maintainers         ucla.edu:alexander.afanasyev
+
+description         NDN C++ library with eXperimental eXtensions
+
+long_description    ndn-cxx is a C++ library, implementing Named Data Networking (NDN) primitives \
+                    that can be used to implement various NDN applications
+
+depends_lib-append  port:boost \
+                    port:openssl \
+                    port:libcryptopp \
+                    port:sqlite3
+
+depends_build-append    port:pkgconfig \
+                        port:py27-sphinx
+
+use_configure           yes
+
+configure.env-append    SPHINX_BUILD=${prefix}/bin/sphinx-build-2.7
+configure.cmd           ./waf configure
+
+build.cmd           ./waf
+build.target        build
+
+destroot.cmd        ./waf
+destroot.target     install
+destroot.destdir    --destdir=${destroot}
diff --git a/net/nfd/Portfile b/net/nfd/Portfile
new file mode 100644
index 0000000..a893ec5
--- /dev/null
+++ b/net/nfd/Portfile
@@ -0,0 +1,136 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem          1.0
+PortGroup           github 1.0
+
+github.setup        named-data NFD b47d53842a6ea8d32800459270a667952d4079bf
+checksums           rmd160  b4c9d6217791642ee6438172be07356554ab2efd \
+                    sha256  8c40c6e96266e064455c2ca6b0b87eedd2bfed10511edcba9940facb6131802a
+
+name                nfd
+homepage            http://named-data.net/doc/NFD/
+license             GPL3+
+version             0.1.0-rc1.1
+
+categories          net
+platforms           darwin
+maintainers         ucla.edu:alexander.afanasyev
+
+description         Named Data Networking Forwarding Daemon
+
+long_description \
+    NFD is a network forwarder that implements and evolves together with the \
+    Named Data Networking (NDN) protocol.  The main design goal of NFD is \
+    to support diverse experimentation of NDN technology.                 \
+    The design emphasizes modularity and extensibility to allow easy      \
+    experiments with new protocol features, algorithms, new               \
+    applications. We have not fully optimized the code for                \
+    performance. The intention is that performance optimizations are one  \
+    type of experiments that developers can conduct by trying out         \
+    different data structures and different algorithms\; over time, better \
+    implementations may emerge within the same design framework.
+
+depends_lib-append  port:ndn-cxx \
+                    port:libpcap
+
+depends_build-append    port:pkgconfig \
+                        port:py27-sphinx
+
+use_configure           yes
+
+configure.env-append    SPHINX_BUILD=${prefix}/bin/sphinx-build-2.7
+configure.cmd           ./waf configure
+
+build.cmd           ./waf
+build.target        build
+
+destroot.cmd        ./waf
+destroot.target     install
+destroot.destdir    --destdir=${destroot}
+
+set ndn_user        ndn
+set ndn_group       ndn
+
+add_users ${ndn_user} shell=/bin/sh group=${ndn_group} \
+    realname=NDN\ User
+
+post-destroot {
+    # Install plists
+    xinstall -m 755 -d ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
+    xinstall -m 755 ${filespath}/net.named-data.nfd.plist \
+        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
+    xinstall -m 755 ${filespath}/net.named-data.nrd.plist \
+        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
+
+    reinplace "s|/usr/local|${prefix}|g" \
+        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist
+    reinplace "s|/usr/local|${prefix}|g" \
+        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.plist
+
+    # Install replacement for nfd-start/stop scripts
+    xinstall -m 755 ${filespath}/nfd-start "${destroot}${prefix}/bin/"
+    xinstall -m 755 ${filespath}/nfd-stop "${destroot}${prefix}/bin/"
+}
+
+post-activate {
+
+    # Create log dir
+    xinstall -m 755 -d -o ${ndn_user} -g ${ndn_group} \
+        ${prefix}/var/log/ndn
+
+    system "cd /Library/LaunchDaemons && sudo ln -sf \
+            ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"
+    system "cd /Library/LaunchDaemons && sudo ln -sf \
+            ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.plist"
+
+    if {![file exists ${prefix}/etc/ndn/nfd.conf]} {
+
+        file copy ${prefix}/etc/ndn/nfd.conf.sample \
+            ${prefix}/etc/ndn/nfd.conf
+
+        # Generate self-signed NDN certificate for nfd (owned by root)
+        xinstall -m 755 -d ${prefix}/var/lib/ndn/nfd/.ndn
+        system "echo tpm=file > ${prefix}/var/lib/ndn/nfd/.ndn/client.conf"
+        system "HOME=${prefix}/var/lib/ndn/nfd ndnsec-keygen /localhost/daemons/nfd | \
+          HOME=${prefix}/var/lib/ndn/nfd ndnsec-install-cert -"
+
+        # Generate self-signed NDN certificate for nrd (owned by ndn)
+        xinstall -m 755 -d -o ${ndn_user} -g ${ndn_group} ${prefix}/var/lib/ndn/nrd/.ndn
+        system "sudo -u ${ndn_user} -g ${ndn_group} sh -c 'echo tpm=file \
+          > ${prefix}/var/lib/ndn/nrd/.ndn/client.conf'"
+        system "sudo -u ${ndn_user} -g ${ndn_group} HOME=${prefix}/var/lib/ndn/nrd \
+          ndnsec-keygen /localhost/daemons/nrd | \
+          sudo -u ${ndn_user} -g ndn HOME=${prefix}/var/lib/ndn/nrd ndnsec-install-cert -"
+
+        # Dump RIB Management daemon's certificate
+        xinstall -m 755 -d ${prefix}/etc/ndn/certs
+        system "sudo sh -c 'sudo -u ${ndn_user} -g ${ndn_group} HOME=${prefix}/var/lib/ndn/nrd \
+          ndnsec-dump-certificate -i /localhost/daemons/nrd \
+          > ${prefix}/etc/ndn/certs/localhost_daemons_nrd.ndncert'"
+
+    }
+}
+
+pre-deactivate {
+    system "${prefix}/bin/nfd-stop"
+
+    system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"
+    system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.plist"
+}
+
+notes "
+
+To start NFD and ensure it is started when system boots:
+
+    nfd-start
+
+To stop NFD and disable auto-start when system boots:
+
+    nfd-stop
+
+NFD log files are located in ${prefix}/var/log/ndn/
+
+Configuration file is in ${prefix}/var/etc/ndn/
+
+"
diff --git a/net/nfd/files/net.named-data.nfd.plist b/net/nfd/files/net.named-data.nfd.plist
new file mode 100644
index 0000000..a8da970
--- /dev/null
+++ b/net/nfd/files/net.named-data.nfd.plist
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
+"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
+<plist version='1.0'>
+<dict>
+<key>Label</key><string>net.named-data.nfd</string>
+<key>ProgramArguments</key>
+<array>
+  <string>/usr/local/bin/nfd</string>
+  <string>--config</string>
+  <string>/usr/local/etc/ndn/nfd.conf</string>
+</array>
+<key>EnvironmentVariables</key>
+<dict>
+  <key>HOME</key><string>/usr/local/var/lib/ndn/nfd</string>
+</dict>
+<key>Debug</key><true/>
+<key>Disabled</key><true/>
+<key>KeepAlive</key><true/>
+<key>StandardErrorPath</key><string>/usr/local/var/log/ndn/nfd.log</string>
+<key>ProcessType</key><string>Background</string>
+</dict>
+</plist>
diff --git a/net/nfd/files/net.named-data.nrd.plist b/net/nfd/files/net.named-data.nrd.plist
new file mode 100644
index 0000000..3cd7aaa
--- /dev/null
+++ b/net/nfd/files/net.named-data.nrd.plist
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
+"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
+<plist version='1.0'>
+<dict>
+<key>Label</key><string>net.named-data.nrd</string>
+<key>ProgramArguments</key>
+<array>
+  <string>/usr/local/bin/nrd</string>
+  <string>--config</string>
+  <string>/usr/local/etc/ndn/nfd.conf</string>
+</array>
+<key>UserName</key><string>ndn</string>
+<key>GroupName</key><string>ndn</string>
+<key>EnvironmentVariables</key>
+<dict>
+  <key>HOME</key><string>/usr/local/var/lib/ndn/nrd</string>
+</dict>
+<key>Debug</key><true/>
+<key>Disabled</key><true/>
+<key>KeepAlive</key><true/>
+<key>StandardErrorPath</key><string>/usr/local/var/log/ndn/nrd.log</string>
+<key>ProcessType</key><string>Background</string>
+</dict>
+</plist>
diff --git a/net/nfd/files/nfd-start b/net/nfd/files/nfd-start
new file mode 100755
index 0000000..af1853f
--- /dev/null
+++ b/net/nfd/files/nfd-start
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sudo launchctl load -w /Library/LaunchDaemons/net.named-data.nfd.plist
+sudo launchctl load -w /Library/LaunchDaemons/net.named-data.nrd.plist
diff --git a/net/nfd/files/nfd-stop b/net/nfd/files/nfd-stop
new file mode 100755
index 0000000..2d64e9f
--- /dev/null
+++ b/net/nfd/files/nfd-stop
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sudo launchctl unload -w /Library/LaunchDaemons/net.named-data.nfd.plist
+sudo launchctl unload -w /Library/LaunchDaemons/net.named-data.nrd.plist
diff --git a/net/nfd/files/nfd.conf.sample b/net/nfd/files/nfd.conf.sample
new file mode 100644
index 0000000..05f0316
--- /dev/null
+++ b/net/nfd/files/nfd.conf.sample
@@ -0,0 +1,195 @@
+; The general section contains settings of nfd process.
+; general
+; {
+; }
+
+log
+{
+  ; default_level specifies the logging level for modules
+  ; that are not explicitly named. All debugging levels
+  ; listed above the selected value are enabled.
+  ;
+  ; Valid values:
+  ;
+  ;  NONE ; no messages
+  ;  ERROR ; error messages
+  ;  WARN ; warning messages
+  ;  INFO ; informational messages (default)
+  ;  DEBUG ; debugging messages
+  ;  TRACE ; trace messages (most verbose)
+  ;  ALL ; all messages
+
+  default_level INFO
+
+  ; You may override default_level by assigning a logging level
+  ; to the desired module name. Module names can be found in two ways:
+  ;
+  ; Run:
+  ;   nfd --modules
+  ;   nrd --modules
+  ;
+  ; Or look for NFD_LOG_INIT(<module name>) statements in .cpp files
+  ;
+  ; Example module-level settings:
+  ;
+  ; FibManager DEBUG
+  ; Forwarder INFO
+}
+
+; The face_system section defines what faces and channels are created.
+face_system
+{
+  ; The unix section contains settings of UNIX stream faces and channels.
+  unix
+  {
+    listen yes ; set to 'no' to disable UNIX stream listener, default 'yes'
+    path /var/run/nfd.sock ; UNIX stream listener path
+  }
+
+  ; The tcp section contains settings of TCP faces and channels.
+  tcp
+  {
+    listen yes ; set to 'no' to disable TCP listener, default 'yes'
+    port 6363 ; TCP listener port number
+    enable_v4 yes ; set to 'no' to disable IPv4 channels, default 'yes'
+    enable_v6 yes ; set to 'no' to disable IPv6 channels, default 'yes'
+  }
+
+  ; The udp section contains settings of UDP faces and channels.
+  ; UDP channel is always listening; delete udp section to disable UDP
+  udp
+  {
+    port 6363 ; UDP unicast port number
+    enable_v4 yes ; set to 'no' to disable IPv4 channels, default 'yes'
+    enable_v6 yes ; set to 'no' to disable IPv6 channels, default 'yes'
+    idle_timeout 600 ; idle time (seconds) before closing a UDP unicast face
+    keep_alive_interval 25; interval (seconds) between keep-alive refreshes
+
+    ; UDP multicast settings
+    ; NFD creates one UDP multicast face per NIC
+    mcast yes ; set to 'no' to disable UDP multicast, default 'yes'
+    mcast_port 56363 ; UDP multicast port number
+    mcast_group 224.0.23.170 ; UDP multicast group (IPv4 only)
+  }
+
+  ; The ether section contains settings of Ethernet faces and channels.
+  ether
+  {
+    ; Ethernet multicast settings
+    ; NFD creates one Ethernet multicast face per NIC
+    mcast yes ; set to 'no' to disable Ethernet multicast, default 'yes'
+    mcast_group 01:00:5E:00:17:AA ; Ethernet multicast group
+  }
+}
+
+authorizations
+{
+  authorize
+  {
+    certfile certs/localhost_daemons_nrd.ndncert
+    privileges
+    {
+        faces
+        fib
+        strategy-choice
+    }
+  }
+
+  authorize
+  {
+    certfile any
+    privileges
+    {
+        faces
+        strategy-choice
+    }
+  }
+}
+
+rib
+{
+  ; The following localhost_security allows anyone to register routing entries in local RIB
+  localhost_security
+  {
+    trust-anchor
+    {
+      type any
+    }
+  }
+
+  ; localhop_security should be enabled when NFD runs on a hub.
+  ; "/localhop/nfd/fib" command prefix will be disabled when localhop_security section is missing.
+  ; localhop_security
+  ; {
+  ;   ; This section defines the trust model for NFD RIB Management. It consists of rules and
+  ;   ; trust-anchors, which are briefly defined in this file.  For more information refer to
+  ;   ; manpage of ndn-validator.conf:
+  ;   ;
+  ;   ;     man ndn-validator.conf
+  ;   ;
+  ;   ; A trust-anchor is a pre-trusted certificate.  This can be any certificate that is the
+  ;   ; root of certification chain (e.g., NDN testbed root certificate) or an existing
+  ;   ; default system certificate `default.ndncert`.
+  ;   ;
+  ;   ; A rule defines conditions a valid packet MUST have. A packet must satisfy one of the
+  ;   ; rules defined here. A rule can be broken into two parts: matching & checking. A packet
+  ;   ; will be matched against rules from the first to the last until a matched rule is
+  ;   ; encountered. The matched rule will be used to check the packet. If a packet does not
+  ;   ; match any rule, it will be treated as invalid.  The matching part of a rule consists
+  ;   ; of `for` and `filter` sections. They collectively define which packets can be checked
+  ;   ; with this rule. `for` defines packet type (data or interest) and `filter` defines
+  ;   ; conditions on other properties of a packet. Right now, you can only define conditions
+  ;   ; on packet name, and you can only specify ONLY ONE filter for packet name.  The
+  ;   ; checking part of a rule consists of `checker`, which defines the conditions that a
+  ;   ; VALID packet MUST have. See comments in checker section for more details.
+  ;
+  ;   rule
+  ;   {
+  ;     id "NRD Prefix Registration Command Rule"
+  ;     for interest                         ; rule for Interests (to validate CommandInterests)
+  ;     filter
+  ;     {
+  ;       type name                          ; condition on interest name (w/o signature)
+  ;       regex ^[<localhop><localhost>]<nfd><rib>[<register><unregister>]<>{3}$
+  ;     }
+  ;     checker
+  ;     {
+  ;       type customized
+  ;       sig-type rsa-sha256                ; interest must have a rsa-sha256 signature
+  ;       key-locator
+  ;       {
+  ;         type name                        ; key locator must be the certificate name of the
+  ;                                          ; signing key
+  ;         regex ^[^<KEY>]*<KEY><>*<ksk-.*><ID-CERT>$
+  ;       }
+  ;     }
+  ;   }
+  ;   rule
+  ;   {
+  ;     id "NDN Testbed Hierarchy Rule"
+  ;     for data                             ; rule for Data (to validate NDN certificates)
+  ;     filter
+  ;     {
+  ;       type name                          ; condition on data name
+  ;       regex ^[^<KEY>]*<KEY><>*<ksk-.*><ID-CERT><>$
+  ;     }
+  ;     checker
+  ;     {
+  ;       type hierarchical                  ; the certificate name of the signing key and
+  ;                                          ; the data name must follow the hierarchical model
+  ;       sig-type rsa-sha256                ; data must have a rsa-sha256 signature
+  ;     }
+  ;   }
+  ;   trust-anchor
+  ;   {
+  ;     type file
+  ;     file-name keys/default.ndncert ; the file name, by default this file should be placed in the
+  ;                                    ; same folder as this config file.
+  ;   }
+  ;   ; trust-anchor ; Can be repeated multiple times to specify multiple trust anchors
+  ;   ; {
+  ;   ;   type file
+  ;   ;   file-name keys/ndn-testbed.ndncert
+  ;   ; }
+  ; }
+}
