ns-3: History and Future

143
ns-3: History and Future Mathieu Lacage March, 24th 2012 Lacage ns-3: History and Future March 2012 1 / 27

description

Keynote presentation to WNS3 2012

Transcript of ns-3: History and Future

Page 1: ns-3: History and Future

ns-3: History and Future

Mathieu Lacage

March, 24th 2012

Lacage ns-3: History and Future March 2012 1 / 27

Page 2: ns-3: History and Future

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage ns-3: History and Future March 2012 2 / 27

Page 3: ns-3: History and Future

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 ns-3: History and Future March 2012 3 / 27

Page 4: ns-3: History and Future

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 ns-3: History and Future March 2012 3 / 27

Page 5: ns-3: History and Future

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 ns-3: History and Future March 2012 3 / 27

Page 6: ns-3: History and Future

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 ns-3: History and Future March 2012 3 / 27

Page 7: ns-3: History and Future

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 ns-3: History and Future March 2012 3 / 27

Page 8: ns-3: History and Future

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 ns-3: History and Future March 2012 4 / 27

Page 9: ns-3: History and Future

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 ns-3: History and Future March 2012 4 / 27

Page 10: ns-3: History and Future

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 ns-3: History and Future March 2012 4 / 27

Page 11: ns-3: History and Future

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 ns-3: History and Future March 2012 4 / 27

Page 12: ns-3: History and Future

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 ns-3: History and Future March 2012 4 / 27

Page 13: ns-3: History and Future

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 ns-3: History and Future March 2012 4 / 27

Page 14: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 15: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 16: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 17: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 18: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 19: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 20: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 21: ns-3: History and Future

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 ns-3: History and Future March 2012 5 / 27

Page 22: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 23: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 24: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 25: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 26: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 27: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 28: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 29: ns-3: History and Future

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 ns-3: History and Future March 2012 6 / 27

Page 30: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 31: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 32: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 33: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 34: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 35: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 36: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 37: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 38: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 39: ns-3: History and Future

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 ns-3: History and Future March 2012 7 / 27

Page 40: ns-3: History and Future

But the good news is...

We (They) all swallowed it.

Lacage ns-3: History and Future March 2012 8 / 27

Page 41: ns-3: History and Future

But the good news is...

We (They) all swallowed it.

Lacage ns-3: History and Future March 2012 8 / 27

Page 42: ns-3: History and Future

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 ns-3: History and Future March 2012 9 / 27

Page 43: ns-3: History and Future

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 ns-3: History and Future March 2012 9 / 27

Page 44: ns-3: History and Future

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 ns-3: History and Future March 2012 9 / 27

Page 45: ns-3: History and Future

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 ns-3: History and Future March 2012 9 / 27

Page 46: ns-3: History and Future

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage ns-3: History and Future March 2012 10 / 27

Page 47: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 48: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 49: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 50: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 51: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 52: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 53: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 54: ns-3: History and Future

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 ns-3: History and Future March 2012 11 / 27

Page 55: ns-3: History and Future

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 ns-3: History and Future March 2012 12 / 27

Page 56: ns-3: History and Future

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 ns-3: History and Future March 2012 12 / 27

Page 57: ns-3: History and Future

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 ns-3: History and Future March 2012 12 / 27

Page 58: ns-3: History and Future

Pros and Cons

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

Lacage ns-3: History and Future March 2012 13 / 27

Page 59: ns-3: History and Future

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 ns-3: History and Future March 2012 13 / 27

Page 60: ns-3: History and Future

How did we get there ?

About 10 successive versions...

Lacage ns-3: History and Future March 2012 14 / 27

Page 61: ns-3: History and Future

How did we get there ?

Started with a simple version in YANS:

Headers’ List

Tags

RefCounting

Sep

2005

Lacage ns-3: History and Future March 2012 14 / 27

Page 62: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 63: ns-3: History and Future

How did we get there ?

Real bytes in YANS:

Headers’ List

Tags

RefCounting

Real

Bytes

Sep

2005

Jan

2006

Lacage ns-3: History and Future March 2012 14 / 27

Page 64: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 65: ns-3: History and Future

How did we get there ?

Smart Pointers in YANS:

Headers’ List

Tags

RefCounting

Smart

Pointers

Real

Bytes

Sep

2005

Jan

2006

Jun

2006

Lacage ns-3: History and Future March 2012 14 / 27

Page 66: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 67: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 68: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 69: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 70: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 71: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 72: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 73: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 74: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 75: ns-3: History and Future

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 ns-3: History and Future March 2012 14 / 27

Page 76: ns-3: History and Future

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 ns-3: History and Future March 2012 15 / 27

Page 77: ns-3: History and Future

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 ns-3: History and Future March 2012 15 / 27

Page 78: ns-3: History and Future

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 ns-3: History and Future March 2012 15 / 27

Page 79: ns-3: History and Future

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 ns-3: History and Future March 2012 15 / 27

Page 80: ns-3: History and Future

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 ns-3: History and Future March 2012 15 / 27

Page 81: ns-3: History and Future

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage ns-3: History and Future March 2012 16 / 27

Page 82: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 83: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 84: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 85: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 86: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 87: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 88: ns-3: History and Future

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 ns-3: History and Future March 2012 17 / 27

Page 89: ns-3: History and Future

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 ns-3: History and Future March 2012 18 / 27

Page 90: ns-3: History and Future

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 ns-3: History and Future March 2012 18 / 27

Page 91: ns-3: History and Future

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 ns-3: History and Future March 2012 18 / 27

Page 92: ns-3: History and Future

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 ns-3: History and Future March 2012 18 / 27

Page 93: ns-3: History and Future

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 ns-3: History and Future March 2012 18 / 27

Page 94: ns-3: History and Future

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 ns-3: History and Future March 2012 18 / 27

Page 95: ns-3: History and Future

A Windy Path

It Started with nothing

Lacage ns-3: History and Future March 2012 19 / 27

Page 96: ns-3: History and Future

A Windy Path

But tom liked the ns-2 default values

Default

Value

Mar

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 97: ns-3: History and Future

A Windy Path

But tom liked the ns-2 default values

Default

Value

Mar

2007

What about memory management, aggregation ?

Lacage ns-3: History and Future March 2012 19 / 27

Page 98: ns-3: History and Future

A Windy Path

Here comes microsoft’s IUnknown!

Default

Value

IUnknown

Mar

2007

Apr

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 99: ns-3: History and Future

A Windy Path

Here comes microsoft’s IUnknown!

Default

Value

IUnknown

Mar

2007

Apr

2007

Scratch that, everyone hates it

Lacage ns-3: History and Future March 2012 19 / 27

Page 100: ns-3: History and Future

A Windy Path

Resolving trace sources: microsoft’s IMoniker

Default

ValueIMoniker

IUnknown

Mar

2007

Apr

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 101: ns-3: History and Future

A Windy Path

Resolving trace sources: microsoft’s IMoniker

Default

ValueIMoniker

IUnknown

Mar

2007

Apr

2007

Hrm... So, what about memory management ?

Lacage ns-3: History and Future March 2012 19 / 27

Page 102: ns-3: History and Future

A Windy Path

Reference Counting wins

Default

Value

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 103: ns-3: History and Future

A Windy Path

Reference Counting wins

Default

Value

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

And Cycles ?

Lacage ns-3: History and Future March 2012 19 / 27

Page 104: ns-3: History and Future

A Windy Path

Dispose to Break the Cycles

Default

ValueDispose

Reference

Counting

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 105: ns-3: History and Future

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 ns-3: History and Future March 2012 19 / 27

Page 106: ns-3: History and Future

A Windy Path

Dynamic Aggregation

Default

ValueDispose

Reference

CountingAggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 107: ns-3: History and Future

A Windy Path

Dynamic Aggregation

Default

ValueDispose

Reference

CountingAggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Ref/Unref by hand still sucks!

Lacage ns-3: History and Future March 2012 19 / 27

Page 108: ns-3: History and Future

A Windy Path

Smart Pointers are back

Default

ValueDispose

Reference

Counting

Ptr<>

Aggregation

IMoniker

IUnknown

Mar

2007

Apr

2007

May

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 109: ns-3: History and Future

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 ns-3: History and Future March 2012 19 / 27

Page 110: ns-3: History and Future

A Windy Path

Introduce Attributes

Default

ValueDispose

Reference

Counting

Ptr<>

Aggregation

IMoniker Attributes

IUnknown

Mar

2007

Apr

2007

Jan-Mar

2008

May

2007

Lacage ns-3: History and Future March 2012 19 / 27

Page 111: ns-3: History and Future

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 ns-3: History and Future March 2012 20 / 27

Page 112: ns-3: History and Future

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 ns-3: History and Future March 2012 20 / 27

Page 113: ns-3: History and Future

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 ns-3: History and Future March 2012 20 / 27

Page 114: ns-3: History and Future

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 ns-3: History and Future March 2012 20 / 27

Page 115: ns-3: History and Future

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 ns-3: History and Future March 2012 21 / 27

Page 116: ns-3: History and Future

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 ns-3: History and Future March 2012 21 / 27

Page 117: ns-3: History and Future

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 ns-3: History and Future March 2012 21 / 27

Page 118: ns-3: History and Future

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 ns-3: History and Future March 2012 21 / 27

Page 119: ns-3: History and Future

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 ns-3: History and Future March 2012 21 / 27

Page 120: ns-3: History and Future

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 ns-3: History and Future March 2012 21 / 27

Page 121: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 122: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 123: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 124: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 125: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 126: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 127: ns-3: History and Future

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 ns-3: History and Future March 2012 22 / 27

Page 128: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 129: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 130: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 131: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 132: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 133: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 134: ns-3: History and Future

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 ns-3: History and Future March 2012 23 / 27

Page 135: ns-3: History and Future

Outline

Introduction

Packet

Object Framework

Conclusion

Lacage ns-3: History and Future March 2012 24 / 27

Page 136: ns-3: History and Future

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 ns-3: History and Future March 2012 25 / 27

Page 137: ns-3: History and Future

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 ns-3: History and Future March 2012 25 / 27

Page 138: ns-3: History and Future

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 ns-3: History and Future March 2012 25 / 27

Page 139: ns-3: History and Future

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 ns-3: History and Future March 2012 25 / 27

Page 140: ns-3: History and Future

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 ns-3: History and Future March 2012 25 / 27

Page 141: ns-3: History and Future

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 ns-3: History and Future March 2012 25 / 27

Page 142: ns-3: History and Future

Thank you !

Questions ?

Lacage ns-3: History and Future March 2012 26 / 27

Page 143: ns-3: History and Future

Contact

[email protected]

Lacage ns-3: History and Future March 2012 27 / 27