NLSR Authors
===========

NLSR is an open source project includes contributions from the members of the
[NDN project team](http://named-data.net/project/participants/).

## Project lead:

* Vince Lehman <http://vslehman.com>

## Past project leads:

* A K M Mahmudul Hoque <https://sites.google.com/site/akmhoque/home>

## Technical advisors:

* Lan Wang            <http://www.cs.memphis.edu/~lanwang/>
* Beichuan Zhang      <http://www.cs.arizona.edu/~bzhang/>
* Lixia Zhang         <http://www.cs.ucla.edu/~lixia/>


## All project authors, contributors and their affiliations:

* The University of Memphis

    * A K M Mahmudul Hoque <https://sites.google.com/site/akmhoque/home>
    * Ashlesh Gawande      <agawande@memphis.edu>
    * Minsheng Zhang       <mzhang4@memphis.edu>
    * Syed Obaid Amin      <http://obaidamin.weebly.com/>
    * Vince Lehman         <http://vslehman.com>
    * Muktadir R Chowdhury <mrchwdhr@memphis.edu>
    * Nicholas Gordon      <nmgordon@memphis.edu>
    * Laqin Fan            <lfan1@memphis.edu>

* University of California, Los Angeles

    * Yingdi Yu           <http://irl.cs.ucla.edu/~yingdi/web/index.html>
    * Alexander Afanasyev <http://lasr.cs.ucla.edu/afanasyev/index.html>
    * Spyridon Mastorakis <http://cs.ucla.edu/~mastorakis/>
    * Jiewen Tan          <alanwake@ucla.edu>

* University of Arizona

    * Junxiao Shi         <https://www.cs.arizona.edu/people/shijunxiao/>


## Queries about NLSR

Any question related to NLSR should be directed to Ashlesh Gawande (agawande@memphis.edu),
Muktadir R Chowdhury (mrchwdhr@memphis.edu), and Nicholas Gordon (nmgordon@memphis.edu).
