<div dir="ltr"><div>Hi Rafee</div><div><br></div><div>Yes, I'm doing code cleanup in the NDN-DPDK codebase these days, including moving part of /ndni to /ndn.<br></div><div>/ndn directory will contain a Go library that does not depend on Cgo. It serves as an example for other library authors, on how to communicate with NDN-DPDK.<br></div><div>It will be used for unit tests within the NDN-DPDK codebase, and can be used by applications as well.<br></div><div><br></div><div>Basic functionality (packet encoding, etc) can be used anywhere, including microcontrollers via TinyGo compiler.</div><div>There will be Ethernet transport (to communicate with a local or remote NDN-DPDK or other forwarder), and libmemif transport (to communicate with local NDN-DPDK forwarder). PIT token is required everywhere. These transports will depend on Cgo (due to the dependencies), and can only be used on Linux.</div><div>Management features will follow protocols of the NDN-DPDK management agent (still under design), as I introduced in the 2019 FABRIC community meeting.<br></div><div>Initially I'm not planning crypto and application layer features (segmented object, RDR, etc).</div><div><br></div><div>Yours, Junxiao<br></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div><blockquote type="cite"><div>On Jun 18, 2020, at 4:57 PM, Mohammad Ishfaque Jahan Rafee <<a href="mailto:mij.rafee.1344@gmail.com" target="_blank">mij.rafee.1344@gmail.com</a>> wrote:</div><br><div><span style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">Hi Dr. Zhang,</span><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">I checked inside the email lists using google search, with terms ndn-dpdk, golang and nfd-dev. But couldn't find anything conclusive regarding the design decisions of golang ndn API. However, the repo page for ndn-dpdk shows some guidance. At this point, I'm trying to assume the intention of Junxiao rather than what's inside the repository. So obviously there is a high possibility I'm making errors.<br><br></div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="https://github.com/usnistgov/ndn-dpdk/tree/master/ndni" target="_blank">https://github.com/usnistgov/ndn-dpdk/tree/master/ndni</a> is the original repo from Junxiao, that is built solely to build ndn-dpdk, without any intention to build an ndn library in golang. It partially contained some wrapper using cgo, which means it uses unsafe pointers and technically can't be cross-compiled (at least not easily).<br></div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br></div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">On the other hand, <a href="https://github.com/usnistgov/ndn-dpdk/tree/master/ndn" target="_blank">https://github.com/usnistgov/ndn-dpdk/tree/master/ndn</a>, this is something Junxiao is building with exposing it as a golang library. That's why it mentions "<span style="color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">go-gettable</span>", that means we can use it as a golang library in any OS or architecture. But this part of the repo is still empty, so I assume it's in active development but it's not ready yet.</div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br></div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Junxiao can weigh in whether my assumptions are right or not.</div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Best Regards</div><div style="font-family:Courier;font-size:16px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Rafee</div><br></div></blockquote></div><br></div></blockquote></div></div></div>