ns-3: API and model change history

ns-3 is an evolving system and there will be API or behavioral changes from time to time. Users who try to use scripts or models across versions of ns-3 may encounter problems at compile time, run time, or may see the simulation output change.

We have adopted the development policy that we are going to try to ease the impact of these changes on users by documenting these changes in a single place (this file), and not by providing a temporary or permanent backward-compatibility software layer.

A related file is the RELEASE_NOTES file in the top level directory. This file complements RELEASE_NOTES by focusing on API and behavioral changes that users upgrading from one release to the next may encounter. RELEASE_NOTES attempts to comprehensively list all of the changes that were made. There is generally some overlap in the information contained in RELEASE_NOTES and this file.

The goal is that users who encounter a problem when trying to use older code with newer code should be able to consult this file to find guidance as to how to fix the problem. For instance, if a method name or signature has changed, it should be stated what the new replacement name is.

Note that users who upgrade the simulator across versions, or who work directly out of the development tree, may find that simulation output changes even when the compilation doesn't break, such as when a simulator default value is changed. Therefore, it is good practice for _anyone_ using code across multiple ns-3 releases to consult this file, as well as the RELEASE_NOTES, to understand what has changed over time.

This file is a best-effort approach to solving this issue; we will do our best but can guarantee that there will be things that fall through the cracks, unfortunately. If you, as a user, can suggest improvements to this file based on your experience, please contribute a patch or drop us a note on ns-developers mailing list.


Changes from ns-3.24 to ns-3.25

New API:

Changes to existing API:

Changes to build system:

Changed behavior:

This section is for behavioral changes to the models that were not due to a bug fix.

Changes from ns-3.23 to ns-3.24

New API:

Changes to existing API:

Changes to build system:

Changed behavior:

This section is for behavioral changes to the models that were not due to a bug fix.

Changes from ns-3.22 to ns-3.23

New API:

Changes to existing API:

Changes to build system:

Changed behavior:

This section is for behavioral changes to the models that were not due to a bug fix.

Changes from ns-3.21 to ns-3.22

New API:

Changes to existing API:

Changes to build system:

Changed behavior:

This section is for behavioral changes to the models that were not due to a bug fix.

Changes from ns-3.20 to ns-3.21

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.19 to ns-3.20

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.18.1 to ns-3.19

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.18 to ns-3.18.1

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.17 to ns-3.18

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.16 to ns-3.17

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.15 to ns-3.16

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.14 to ns-3.15

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.13 to ns-3.14

New API:

Changes to existing API:

Changes to build system:

Changed behavior:


Changes from ns-3.12 to ns-3.13

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.11 to ns-3.12

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.10 to ns-3.11

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.9 to ns-3.10

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.8 to ns-3.9

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.7 to ns-3.8

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.6 to ns-3.7

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.5 to ns-3.6

Changes to build system:

New API:

Changes to existing API:


Changes from ns-3.4 to ns-3.5

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.3 to ns-3.4

Changes to build system:

New API:

Changes to existing API:

Changed behavior:


Changes from ns-3.2 to ns-3.3

New API:

Changes to existing API:

changed behavior:


Changes from ns-3.1 to ns-3.2

New API:

New API in existing classes:

Changes to existing API:

Changed behavior: