mathieu lacage march, 24th 2012 · lacage a vision of ns-3 march 2012 3 / 27. requirements...

143
A personal vision of ns-3 Mathieu Lacage March, 24th 2012 Lacage A vision of ns-3 March 2012 1 / 27

Upload: others

Post on 05-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A personal vision of ns-3

Mathieu Lacage

March, 24th 2012

Lacage A vision of ns-3 March 2012 1 / 27

Page 2: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage A vision of ns-3 March 2012 2 / 27

Page 3: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How the project came to be

Multiple partners:I NSF-funded: UWA, GT, ISII INRIA-funded: planète

Pulling the project in multiple directions:

Wireless

Long Term

Survival

Fast TCP

Real Code

Integration

EmulationEducation

ns-3

Lacage A vision of ns-3 March 2012 3 / 27

Page 4: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How the project came to beMultiple partners:

I NSF-funded: UWA, GT, ISII INRIA-funded: planète

Pulling the project in multiple directions:

Wireless

Long Term

Survival

Fast TCP

Real Code

Integration

EmulationEducation

ns-3

Lacage A vision of ns-3 March 2012 3 / 27

Page 5: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How the project came to beMultiple partners:

I NSF-funded: UWA, GT, ISI

I INRIA-funded: planètePulling the project in multiple directions:

Wireless

Long Term

Survival

Fast TCP

Real Code

Integration

EmulationEducation

ns-3

Lacage A vision of ns-3 March 2012 3 / 27

Page 6: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How the project came to beMultiple partners:

I NSF-funded: UWA, GT, ISII INRIA-funded: planète

Pulling the project in multiple directions:

Wireless

Long Term

Survival

Fast TCP

Real Code

Integration

EmulationEducation

ns-3

Lacage A vision of ns-3 March 2012 3 / 27

Page 7: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How the project came to beMultiple partners:

I NSF-funded: UWA, GT, ISII INRIA-funded: planète

Pulling the project in multiple directions:

Wireless

Long Term

Survival

Fast TCP

Real Code

Integration

EmulationEducation

ns-3

Lacage A vision of ns-3 March 2012 3 / 27

Page 8: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

Real-code integration, Emulation:I Models must not be too abstract (Node, etc.)I Must be transparent to models

Fast TCP:I Memory efficiency of many packets in flight

Lacage A vision of ns-3 March 2012 4 / 27

Page 9: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

Real-code integration, Emulation:

I Models must not be too abstract (Node, etc.)I Must be transparent to models

Fast TCP:I Memory efficiency of many packets in flight

Lacage A vision of ns-3 March 2012 4 / 27

Page 10: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

Real-code integration, Emulation:I Models must not be too abstract (Node, etc.)

I Must be transparent to modelsFast TCP:

I Memory efficiency of many packets in flight

Lacage A vision of ns-3 March 2012 4 / 27

Page 11: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

Real-code integration, Emulation:I Models must not be too abstract (Node, etc.)I Must be transparent to models

Fast TCP:I Memory efficiency of many packets in flight

Lacage A vision of ns-3 March 2012 4 / 27

Page 12: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

Real-code integration, Emulation:I Models must not be too abstract (Node, etc.)I Must be transparent to models

Fast TCP:

I Memory efficiency of many packets in flight

Lacage A vision of ns-3 March 2012 4 / 27

Page 13: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

Real-code integration, Emulation:I Models must not be too abstract (Node, etc.)I Must be transparent to models

Fast TCP:I Memory efficiency of many packets in flight

Lacage A vision of ns-3 March 2012 4 / 27

Page 14: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:I Must have great validated wireless models

Long term survival:I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 15: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:

I Must be easy to use for studentsWireless:

I Must have great validated wireless modelsLong term survival:

I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 16: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:I Must have great validated wireless models

Long term survival:I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 17: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:

I Must have great validated wireless modelsLong term survival:

I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 18: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:I Must have great validated wireless models

Long term survival:I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 19: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:I Must have great validated wireless models

Long term survival:

I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 20: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:I Must have great validated wireless models

Long term survival:I Maintenance: production-quality code

I Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 21: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

More requirements

Education:I Must be easy to use for students

Wireless:I Must have great validated wireless models

Long term survival:I Maintenance: production-quality codeI Funding: NSF & INRIA funding finite

Lacage A vision of ns-3 March 2012 5 / 27

Page 22: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:I Funds to use the toolI Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 23: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:

I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:I Funds to use the toolI Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 24: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)

I Large and complex codeHard to obtain funding from research agencies:

I Funds to use the toolI Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 25: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:I Funds to use the toolI Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 26: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:

I Funds to use the toolI Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 27: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:I Funds to use the tool

I Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 28: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:I Funds to use the toolI Funds to extend the tool

I No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 29: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Long Term Survival

Hard to make enough money to maintain the code:I Small market (network researchers)I Large and complex code

Hard to obtain funding from research agencies:I Funds to use the toolI Funds to extend the toolI No funds to maintain the tool

Lacage A vision of ns-3 March 2012 6 / 27

Page 30: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 31: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:

I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 32: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is tricky

I MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 33: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI Meritocracy

I No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 34: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doors

I Must lose control to see the baby growClassic management problem:

I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 35: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 36: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:

I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 37: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourself

I Spend time to help others do the workIt is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 38: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 39: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Open Source Community

Hard to create:I Licensing is trickyI MeritocracyI No discussions behind closed doorsI Must lose control to see the baby grow

Classic management problem:I Spend time to do things yourselfI Spend time to help others do the work

It is a hard pill to (make upper management) swallow

Lacage A vision of ns-3 March 2012 7 / 27

Page 40: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

But the good news is...

We (They) all swallowed it.

Lacage A vision of ns-3 March 2012 8 / 27

Page 41: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

But the good news is...

We (They) all swallowed it.

Lacage A vision of ns-3 March 2012 8 / 27

Page 42: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

And now,

The story of how:

I The Real World pervades everythingI To implement everything 3 or 4 times

I Aka, Incremental development

I To not plan too far

Lacage A vision of ns-3 March 2012 9 / 27

Page 43: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

And now,

The story of how:I The Real World pervades everything

I To implement everything 3 or 4 timesI Aka, Incremental development

I To not plan too far

Lacage A vision of ns-3 March 2012 9 / 27

Page 44: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

And now,

The story of how:I The Real World pervades everythingI To implement everything 3 or 4 times

I Aka, Incremental development

I To not plan too far

Lacage A vision of ns-3 March 2012 9 / 27

Page 45: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

And now,

The story of how:I The Real World pervades everythingI To implement everything 3 or 4 times

I Aka, Incremental development

I To not plan too far

Lacage A vision of ns-3 March 2012 9 / 27

Page 46: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage A vision of ns-3 March 2012 10 / 27

Page 47: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiencyI Fragmentation/ReassemblyI Simulation-only dataI Pretty printingI ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 48: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytes

I CPU and memory efficiencyI Fragmentation/ReassemblyI Simulation-only dataI Pretty printingI ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 49: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiency

I Fragmentation/ReassemblyI Simulation-only dataI Pretty printingI ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 50: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiencyI Fragmentation/Reassembly

I Simulation-only dataI Pretty printingI ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 51: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiencyI Fragmentation/ReassemblyI Simulation-only data

I Pretty printingI ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 52: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiencyI Fragmentation/ReassemblyI Simulation-only dataI Pretty printing

I ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 53: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiencyI Fragmentation/ReassemblyI Simulation-only dataI Pretty printingI Extensibility

I Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 54: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Transparent conversion to/from real bytesI CPU and memory efficiencyI Fragmentation/ReassemblyI Simulation-only dataI Pretty printingI ExtensibilityI Robust Application Programming Interface (API)

Lacage A vision of ns-3 March 2012 11 / 27

Page 55: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Related Work

Two approaches

I Packet is list of headers: GTNetS, OMNeT++,SSFNet

TCPIP PayloadMAC

I Packet is buffer of bytes: Yans, GloMoSim

TCPIP PayloadMAC

Lacage A vision of ns-3 March 2012 12 / 27

Page 56: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Related Work

Two approachesI Packet is list of headers: GTNetS, OMNeT++,

SSFNet

TCPIP PayloadMAC

I Packet is buffer of bytes: Yans, GloMoSim

TCPIP PayloadMAC

Lacage A vision of ns-3 March 2012 12 / 27

Page 57: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Related Work

Two approachesI Packet is list of headers: GTNetS, OMNeT++,

SSFNet

TCPIP PayloadMAC

I Packet is buffer of bytes: Yans, GloMoSim

TCPIP PayloadMAC

Lacage A vision of ns-3 March 2012 12 / 27

Page 58: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Pros and Cons

List BufferFragmentation, Reassembly XConversion real bytes XSimulation-only data XPretty printing XCPU, memory efficiency X

Lacage A vision of ns-3 March 2012 13 / 27

Page 59: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Pros and Cons

List Buffer ns-3Fragmentation, Reassembly X XConversion real bytes X XSimulation-only data X XPretty printing X XCPU, memory efficiency X X

Lacage A vision of ns-3 March 2012 13 / 27

Page 60: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

About 10 successive versions...

Lacage A vision of ns-3 March 2012 14 / 27

Page 61: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Started with a simple version in YANS:

Headers’ List

Tags

RefCounting

Sep

2005

Lacage A vision of ns-3 March 2012 14 / 27

Page 62: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Started with a simple version in YANS:

Headers’ List

Tags

RefCounting

Sep

2005

But, hard to integrate the BSD TCP stack

Lacage A vision of ns-3 March 2012 14 / 27

Page 63: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Real bytes in YANS:

Headers’ List

Tags

RefCounting

Real

Bytes

Sep

2005

Jan

2006

Lacage A vision of ns-3 March 2012 14 / 27

Page 64: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Real bytes in YANS:

Headers’ List

Tags

RefCounting

Real

Bytes

Sep

2005

Jan

2006

But, hard to manage reference counting by hand

Lacage A vision of ns-3 March 2012 14 / 27

Page 65: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Smart Pointers in YANS:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

Bytes

Sep

2005

Jan

2006

Jun

2006

Lacage A vision of ns-3 March 2012 14 / 27

Page 66: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Smart Pointers in YANS:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

Bytes

Sep

2005

Jan

2006

Jun

2006

But, memory & CPU performance is not good

Lacage A vision of ns-3 March 2012 14 / 27

Page 67: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Copy On Write in ns-3:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Lacage A vision of ns-3 March 2012 14 / 27

Page 68: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Copy On Write in ns-3:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Still, Fast TCP pushes the boundary

Lacage A vision of ns-3 March 2012 14 / 27

Page 69: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Virtual payload:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Lacage A vision of ns-3 March 2012 14 / 27

Page 70: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Virtual payload:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Really, debugging is hard

Lacage A vision of ns-3 March 2012 14 / 27

Page 71: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Packet UIDs:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Packet

UID

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Sep

2006

Lacage A vision of ns-3 March 2012 14 / 27

Page 72: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Packet UIDs:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Packet

UID

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Sep

2006

Really, debugging is still hard

Lacage A vision of ns-3 March 2012 14 / 27

Page 73: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Packet Pretty Printing:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Pretty

Printing

Packet

UID

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Sep

2006

May/Jun

2007

Lacage A vision of ns-3 March 2012 14 / 27

Page 74: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Packet Pretty Printing:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Pretty

Printing

Packet

UID

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Sep

2006

May/Jun

2007

But, we do need pointers

Lacage A vision of ns-3 March 2012 14 / 27

Page 75: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

How did we get there ?

Pointers are back:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

BytesCOW

Virtual

Payload

Pretty

Printing

Packet

UIDPtr<Packet>

Sep

2005

Jan

2006

Jun

2006

Jul

2006

Aug

2006

Sep

2006

May/Jun

2007

Oct

2007

Lacage A vision of ns-3 March 2012 14 / 27

Page 76: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

What I learned the hard way

I The mountain seems impossibly high at firstI Forget about the top, aim for base campI The mountain grows with every new userI Listen to users

Lacage A vision of ns-3 March 2012 15 / 27

Page 77: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

What I learned the hard way

I The mountain seems impossibly high at first

I Forget about the top, aim for base campI The mountain grows with every new userI Listen to users

Lacage A vision of ns-3 March 2012 15 / 27

Page 78: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

What I learned the hard way

I The mountain seems impossibly high at firstI Forget about the top, aim for base camp

I The mountain grows with every new userI Listen to users

Lacage A vision of ns-3 March 2012 15 / 27

Page 79: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

What I learned the hard way

I The mountain seems impossibly high at firstI Forget about the top, aim for base campI The mountain grows with every new user

I Listen to users

Lacage A vision of ns-3 March 2012 15 / 27

Page 80: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

What I learned the hard way

I The mountain seems impossibly high at firstI Forget about the top, aim for base campI The mountain grows with every new userI Listen to users

Lacage A vision of ns-3 March 2012 15 / 27

Page 81: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage A vision of ns-3 March 2012 16 / 27

Page 82: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory managementI Allow simulation configurationI Solve the object composition problemI Decouple Trace Sources from Trace SinksI Allow simulation trace setupI Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 83: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory management

I Allow simulation configurationI Solve the object composition problemI Decouple Trace Sources from Trace SinksI Allow simulation trace setupI Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 84: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory managementI Allow simulation configuration

I Solve the object composition problemI Decouple Trace Sources from Trace SinksI Allow simulation trace setupI Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 85: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory managementI Allow simulation configurationI Solve the object composition problem

I Decouple Trace Sources from Trace SinksI Allow simulation trace setupI Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 86: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory managementI Allow simulation configurationI Solve the object composition problemI Decouple Trace Sources from Trace Sinks

I Allow simulation trace setupI Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 87: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory managementI Allow simulation configurationI Solve the object composition problemI Decouple Trace Sources from Trace SinksI Allow simulation trace setup

I Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 88: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Requirements

I Uniform memory managementI Allow simulation configurationI Solve the object composition problemI Decouple Trace Sources from Trace SinksI Allow simulation trace setupI Do not be intrusive to Model developers

Lacage A vision of ns-3 March 2012 17 / 27

Page 89: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Fast Forward to 2012

I Memory management: Ptr<Object> + DisposeI Configuration: Attributes + ConfigStoreI Tracing: integrated in AttributesI Configuration, Tracing: optional

Now on par with Omnetpp & Opnet feature-wise

Lacage A vision of ns-3 March 2012 18 / 27

Page 90: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Fast Forward to 2012

I Memory management: Ptr<Object> + Dispose

I Configuration: Attributes + ConfigStoreI Tracing: integrated in AttributesI Configuration, Tracing: optional

Now on par with Omnetpp & Opnet feature-wise

Lacage A vision of ns-3 March 2012 18 / 27

Page 91: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Fast Forward to 2012

I Memory management: Ptr<Object> + DisposeI Configuration: Attributes + ConfigStore

I Tracing: integrated in AttributesI Configuration, Tracing: optional

Now on par with Omnetpp & Opnet feature-wise

Lacage A vision of ns-3 March 2012 18 / 27

Page 92: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Fast Forward to 2012

I Memory management: Ptr<Object> + DisposeI Configuration: Attributes + ConfigStoreI Tracing: integrated in Attributes

I Configuration, Tracing: optional

Now on par with Omnetpp & Opnet feature-wise

Lacage A vision of ns-3 March 2012 18 / 27

Page 93: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Fast Forward to 2012

I Memory management: Ptr<Object> + DisposeI Configuration: Attributes + ConfigStoreI Tracing: integrated in AttributesI Configuration, Tracing: optional

Now on par with Omnetpp & Opnet feature-wise

Lacage A vision of ns-3 March 2012 18 / 27

Page 94: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Fast Forward to 2012

I Memory management: Ptr<Object> + DisposeI Configuration: Attributes + ConfigStoreI Tracing: integrated in AttributesI Configuration, Tracing: optional

Now on par with Omnetpp & Opnet feature-wise

Lacage A vision of ns-3 March 2012 18 / 27

Page 95: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

It Started with nothing

Lacage A vision of ns-3 March 2012 19 / 27

Page 96: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

But tom liked the ns-2 default values

Default

Value

Mar

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 97: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

But tom liked the ns-2 default values

Default

Value

Mar

2007

What about memory management, aggregation ?

Lacage A vision of ns-3 March 2012 19 / 27

Page 98: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Here comes microsoft’s IUnknown!

Default

Value

IUnknown

Mar

2007

Apr

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 99: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Here comes microsoft’s IUnknown!

Default

Value

IUnknown

Mar

2007

Apr

2007

Scratch that, everyone hates it

Lacage A vision of ns-3 March 2012 19 / 27

Page 100: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Resolving trace sources: microsoft’s IMoniker

Default

ValueIMoniker

IUnknown

Mar

2007

Apr

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 101: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Resolving trace sources: microsoft’s IMoniker

Default

ValueIMoniker

IUnknown

Mar

2007

Apr

2007

Hrm... So, what about memory management ?

Lacage A vision of ns-3 March 2012 19 / 27

Page 102: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Reference Counting wins

Default

Value

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 103: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Reference Counting wins

Default

Value

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

And Cycles ?

Lacage A vision of ns-3 March 2012 19 / 27

Page 104: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Dispose to Break the Cycles

Default

ValueDispose

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 105: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Dispose to Break the Cycles

Default

ValueDispose

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Where is my IUnknown::QueryInterface ?

Lacage A vision of ns-3 March 2012 19 / 27

Page 106: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Dynamic Aggregation

Default

ValueDispose

Reference

CountingAggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 107: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Dynamic Aggregation

Default

ValueDispose

Reference

CountingAggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Ref/Unref by hand still sucks!

Lacage A vision of ns-3 March 2012 19 / 27

Page 108: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Smart Pointers are back

Default

ValueDispose

Reference

Counting

Ptr<>

Aggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 109: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Smart Pointers are back

Default

ValueDispose

Reference

Counting

Ptr<>

Aggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

IMoniker is still ugly...

Lacage A vision of ns-3 March 2012 19 / 27

Page 110: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

A Windy Path

Introduce Attributes

Default

ValueDispose

Reference

Counting

Ptr<>

Aggregation

IMoniker Attributes

IUnknown

Mar

2007

Apr

2007

Jan-Mar

2008

May

2007

Lacage A vision of ns-3 March 2012 19 / 27

Page 111: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

With hindsight...

I wish:I we had looked at Omnetpp & Opnet before

The result is still nice thanks to:I Willingness to listen to usersI Incremental development

Lacage A vision of ns-3 March 2012 20 / 27

Page 112: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

With hindsight...

I wish:I we had looked at Omnetpp & Opnet before

The result is still nice thanks to:I Willingness to listen to usersI Incremental development

Lacage A vision of ns-3 March 2012 20 / 27

Page 113: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

With hindsight...

I wish:I we had looked at Omnetpp & Opnet before

The result is still nice thanks to:I Willingness to listen to users

I Incremental development

Lacage A vision of ns-3 March 2012 20 / 27

Page 114: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

With hindsight...

I wish:I we had looked at Omnetpp & Opnet before

The result is still nice thanks to:I Willingness to listen to usersI Incremental development

Lacage A vision of ns-3 March 2012 20 / 27

Page 115: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

No, it is not over

Real Code Integration:I Linux kernel, Quagga, CCNx, etc.I ContikiI TinyOS

Brings new challenges:I Attributes ?I Tracing ?

Lacage A vision of ns-3 March 2012 21 / 27

Page 116: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

No, it is not over

Real Code Integration:I Linux kernel, Quagga, CCNx, etc.

I ContikiI TinyOS

Brings new challenges:I Attributes ?I Tracing ?

Lacage A vision of ns-3 March 2012 21 / 27

Page 117: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

No, it is not over

Real Code Integration:I Linux kernel, Quagga, CCNx, etc.I Contiki

I TinyOSBrings new challenges:

I Attributes ?I Tracing ?

Lacage A vision of ns-3 March 2012 21 / 27

Page 118: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

No, it is not over

Real Code Integration:I Linux kernel, Quagga, CCNx, etc.I ContikiI TinyOS

Brings new challenges:I Attributes ?I Tracing ?

Lacage A vision of ns-3 March 2012 21 / 27

Page 119: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

No, it is not over

Real Code Integration:I Linux kernel, Quagga, CCNx, etc.I ContikiI TinyOS

Brings new challenges:I Attributes ?

I Tracing ?

Lacage A vision of ns-3 March 2012 21 / 27

Page 120: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

No, it is not over

Real Code Integration:I Linux kernel, Quagga, CCNx, etc.I ContikiI TinyOS

Brings new challenges:I Attributes ?I Tracing ?

Lacage A vision of ns-3 March 2012 21 / 27

Page 121: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:I Bridge /proc/net inside the attribute systemI Difficult to really map one to oneI Extend Attributes to handle structures, arrays ?

Other Applications:I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 122: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:

I Bridge /proc/net inside the attribute systemI Difficult to really map one to oneI Extend Attributes to handle structures, arrays ?

Other Applications:I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 123: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:I Bridge /proc/net inside the attribute system

I Difficult to really map one to oneI Extend Attributes to handle structures, arrays ?

Other Applications:I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 124: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:I Bridge /proc/net inside the attribute systemI Difficult to really map one to one

I Extend Attributes to handle structures, arrays ?Other Applications:

I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 125: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:I Bridge /proc/net inside the attribute systemI Difficult to really map one to oneI Extend Attributes to handle structures, arrays ?

Other Applications:I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 126: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:I Bridge /proc/net inside the attribute systemI Difficult to really map one to oneI Extend Attributes to handle structures, arrays ?

Other Applications:

I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 127: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Configuring Attributes

Linux Kernel:I Bridge /proc/net inside the attribute systemI Difficult to really map one to oneI Extend Attributes to handle structures, arrays ?

Other Applications:I I have no idea.

Lacage A vision of ns-3 March 2012 22 / 27

Page 128: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.I But no builtin tracing in general

Re-implement Kprobe, JProbe, etc. in userspace:I Introspection using debug informationI Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 129: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:

I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.I But no builtin tracing in general

Re-implement Kprobe, JProbe, etc. in userspace:I Introspection using debug informationI Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 130: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.

I But no builtin tracing in generalRe-implement Kprobe, JProbe, etc. in userspace:

I Introspection using debug informationI Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 131: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.I But no builtin tracing in general

Re-implement Kprobe, JProbe, etc. in userspace:I Introspection using debug informationI Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 132: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.I But no builtin tracing in general

Re-implement Kprobe, JProbe, etc. in userspace:

I Introspection using debug informationI Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 133: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.I But no builtin tracing in general

Re-implement Kprobe, JProbe, etc. in userspace:I Introspection using debug information

I Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 134: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Tracing

We do not want to modify the external code:I Linux Kernel: Tracepoints, Ftrace, KProbe, etc.I But no builtin tracing in general

Re-implement Kprobe, JProbe, etc. in userspace:I Introspection using debug informationI Dynamic patching of assembly code

Lacage A vision of ns-3 March 2012 23 / 27

Page 135: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage A vision of ns-3 March 2012 24 / 27

Page 136: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Summary

What really matters (today):I Alignment with the Real WorldI An Open Source CommunityI Incremental developmentI No one (but you) knows where ns-3 is headed

Lacage A vision of ns-3 March 2012 25 / 27

Page 137: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Summary

What really matters (today):

I Alignment with the Real WorldI An Open Source CommunityI Incremental developmentI No one (but you) knows where ns-3 is headed

Lacage A vision of ns-3 March 2012 25 / 27

Page 138: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Summary

What really matters (today):I Alignment with the Real World

I An Open Source CommunityI Incremental developmentI No one (but you) knows where ns-3 is headed

Lacage A vision of ns-3 March 2012 25 / 27

Page 139: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Summary

What really matters (today):I Alignment with the Real WorldI An Open Source Community

I Incremental developmentI No one (but you) knows where ns-3 is headed

Lacage A vision of ns-3 March 2012 25 / 27

Page 140: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Summary

What really matters (today):I Alignment with the Real WorldI An Open Source CommunityI Incremental development

I No one (but you) knows where ns-3 is headed

Lacage A vision of ns-3 March 2012 25 / 27

Page 141: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Summary

What really matters (today):I Alignment with the Real WorldI An Open Source CommunityI Incremental developmentI No one (but you) knows where ns-3 is headed

Lacage A vision of ns-3 March 2012 25 / 27

Page 142: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Thank you !

Questions ?

Lacage A vision of ns-3 March 2012 26 / 27

Page 143: Mathieu Lacage March, 24th 2012 · Lacage A vision of ns-3 March 2012 3 / 27. Requirements Real-code integration, Emulation: I Models must not be too abstract (Node, etc.) I Must

Contact

[email protected]

Lacage A vision of ns-3 March 2012 27 / 27