Giter Club home page Giter Club logo

d2d's Introduction

d2d

LTE-A Proximity-based Services, Device-to-device Communication module for NS-3

This repository hosts a prototyping environment developed for EPC-level user device discovery and communication in LTE-Advanced networks, called D2dSim. Using the popular network simulation platform NS-3, it is one of the first open-source D2D implementation attempt of a subset of the 3GPP Proximity-based Services Release 12/13.

**Implemented features:

EPC Network-assisted device discovery
    UE Proximity Application (ProseApp) <->  EPC Proximity Function Entity (ProseFcn)
    See files: lte/model/epc-prose*, lte-proseapp*, lte/helper/lte-prose-helper*

LTE-Direct communication  (UE <-> UE)

WiFi adhoc, to emulate WiFi-Direct for comparison purposes   (UE <-> UE) 

**What remains to be done:

LTE-Direct discovery; some data structures are in draft stage.

**1. Configuration on Ubuntu:

apt-get install libgccxml-dev libgsl0-dev libopenmpi-dev python-dev python-pygraphviz \
python-kiwi python-pygoocanvas python-gnome2 python-rsvg libsqlite3-dev gtk+-2.0-dev

**2. Get the ns-3 development tree:

hg clone -r 12192 http://code.nsnam.org/ns-3-dev ns3-dev
cd ns3-dev
export NS3_DIR=`pwd`

** Note that recent updates of mainstream ns-3 can bring compilation or runtime failures, 
due to TrafficControl & Queuing features that were added to the IP network module. 
Thus, use Revision 12192 above.

**3. Pull the D2D-related changesets:

git clone https://github.com/makhtardiouf/d2d.git
cp -Rv d2d/* src/
mv d2d/.git src/      # For future updates with git pull

cd $NS3_DIR
export CXXFLAGS="-O0 -ggdb -g3 -Wall -std=c++11 -fstrict-aliasing -Wstrict-aliasing"
./waf configure --build-profile=debug --enable-sudo --enable-examples

**4. Build:

CXXFLAGS="-std=c++11" ./waf build   

**5. Run:

./waf --run d2dsim

** Utility scripts are in:

$NS3_DIR/src/lte/examples/d2d-data/d2d*.bash
d2dbuild.bash  Build and display log
d2drun.bash  Executes D2dSim and display logged output at program termination
d2ddbg.bash  Runs D2dSim under the GDB debugger ...
Link them under /usr/local/bin/  for your convenience 

Stats files(txt, pcap) are saved under the OUTPUT directory.

Recommended environment: (K)Ubuntu 15.x, 16.x; g++ 4.9, 5.x

Detailed documentation will be written later on.

This project was initially hosted at: https://bitbucket.org/makhtardiouf/dtod

NS-3 LTE module: (C) Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
HTTP-related code: (C) Georgia Tech Research Corporation

D2D features: (C) 2014-2016 Gyeonsang N. University
InfoCom Engineering department
Adviser: Woongsup Lee
Implementer: Makhtar Diouf

d2d's People

Contributors

makhtardiouf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

d2d's Issues

SIGSEGV when running d2dsim

Hello, I'm getting the following segfault when running d2dsim under ubuntu 16.04. I followed the instructions on the readme including using revision 12192 of ns3. I'll be debugging it but wanted to check that the instructions are still up to date, or if anyone knows the cause already?

Thanks

2.80515s OnOffApplication:SendPacket(): At time 2.80515s on-off application sent 512 bytes to 10.172.2.3 port 9002 total Tx 512 bytes
Command ['/home/hel/ns3-dev/build/src/lte/examples/ns3-dev-d2dsim-debug'] terminated with signal SIGSEGV. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s ").

visualization problem

Hi thank you for the examples!
I'm wondering if it supports python visualization. I got some error when I put --vis command.

If you have any solutions for this problem, would you please let me know? Thank you in advance.

LTE-D2D unassisted

Hello Makhtar,
thanks for your awesome job with this ns3 module.
I'm just starting working on it and I'm wondering if your module allows a COMPLETELY unassisted version of D2D LTE. Basically I want to know if you already implemented the version of LTE that allows two devices to 'talk' each other without the assistance of eNBs.
If so, can you send me an example of this? If not, can you suggest a good way to implement it starting from your work? Of course I will share my work if I will get it done.
Again, thank you for your work
Best regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.