src/node/wscript
author Florian Westphal <fw@strlen.de>
Wed Jul 15 18:46:14 2009 +0200 (2009-07-15)
changeset 4685 ae536d9e0d6d
parent 4573 01e876191f2e
permissions -rw-r--r--
nsc: move nsc glue code from nsc-tcp-l4-protocol to node/nsc-glue.cc.

known problems:
- sim_interface.h is duplicated
- nsc-glue.cc adds hooks in node.cc, "hijacks" incoming packets
- nsc-glue exports NSCs INetStack (instead of wrapping it completely)
- nsc-tcp-l4-protocol and nsc-tcp-socket-impl make calls into nsc-glue
- nsc-tcp-socket-impl should really be "nsc-socket-core" (or something
like that)

needs fixing on nsc side:
- no support for multiple interfaces yet (also not yet supported
on nsc side)
- nsc initialisation still tied to IP (Adding an Interface and assigning the
IP address is a single step; it should be separate)

maybe there is more.

There is a NSC_NEXT define in nsc-glue.h, its main purpose is to flag
the places where the NSC API needs to be adapted to support multiple
interfaces in nsc.
gjcarneiro@537
     1
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
gjcarneiro@537
     2
gjcarneiro@537
     3
def build(bld):
gjc@1217
     4
    node = bld.create_ns3_module('node', ['core', 'common', 'simulator'])
gjcarneiro@537
     5
    node.source = [
mathieu@1158
     6
        'address.cc',
mathieu@1494
     7
        'mac48-address.cc',
mathieu@1494
     8
        'mac64-address.cc',
mathieu@1171
     9
        'inet-socket-address.cc',
mathieu@1188
    10
        'packet-socket-address.cc',
mathieu@729
    11
        'node.cc',
gjcarneiro@537
    12
        'ipv4-address.cc',
tomh@4373
    13
        'ipv4-interface-address.cc',
craigdo@2722
    14
        'ipv4-address-generator.cc',
mathieu@3216
    15
        'ipv4-header.cc',
gjcarneiro@537
    16
        'net-device.cc',
mathieu@1167
    17
	'address-utils.cc',
gjcarneiro@537
    18
        'llc-snap-header.cc',
emmanuelle@976
    19
        'ethernet-header.cc',
emmanuelle@976
    20
        'ethernet-trailer.cc',
gjcarneiro@537
    21
        'ipv4-route.cc',
tomh@4472
    22
        'ipv4-routing-protocol.cc',
gjcarneiro@537
    23
        'queue.cc',
gjc@760
    24
        'drop-tail-queue.cc',
gjcarneiro@537
    25
        'channel.cc',
gjcarneiro@537
    26
        'node-list.cc',
gjcarneiro@537
    27
        'socket.cc',
gjc@760
    28
        'socket-factory.cc',
mathieu@1188
    29
        'packet-socket-factory.cc',
mathieu@1188
    30
        'packet-socket.cc',
tomh@3130
    31
        'udp-socket.cc',
tomh@3125
    32
        'udp-socket-factory.cc',
tomh@3134
    33
        'tcp-socket.cc',
tomh@3132
    34
        'tcp-socket-factory.cc',
gjc@760
    35
        'ipv4.cc',
gjcarneiro@601
    36
        'application.cc',
mathieu@2673
    37
        'simple-channel.cc',
mathieu@2673
    38
        'simple-net-device.cc',
vincent@3852
    39
        'inet6-socket-address.cc',
vincent@3852
    40
        'ipv6-address.cc',
vincent@3852
    41
        'ipv6-header.cc',
craigdo@3820
    42
        'ipv4-raw-socket-factory.cc',
gjcarneiro@537
    43
        ]
gjcarneiro@537
    44
gjc@4064
    45
    headers = bld.new_task_gen('ns3header')
gjc@2609
    46
    headers.module = 'node'
gjcarneiro@537
    47
    headers.source = [
mathieu@1158
    48
        'address.h',
mathieu@1494
    49
        'mac48-address.h',
mathieu@1494
    50
        'mac64-address.h',
mathieu@1171
    51
        'inet-socket-address.h',
mathieu@1188
    52
        'packet-socket-address.h',
mathieu@729
    53
        'node.h',
gjcarneiro@537
    54
        'ipv4-address.h',
tomh@4472
    55
        'ipv4-interface-address.h',
craigdo@2722
    56
        'ipv4-address-generator.h',
mathieu@3216
    57
        'ipv4-header.h',
gjcarneiro@537
    58
        'net-device.h',
mathieu@1167
    59
	'address-utils.h',
gjcarneiro@537
    60
        'ipv4-route.h',
tomh@4472
    61
        'ipv4-routing-protocol.h',
gjcarneiro@537
    62
        'queue.h',
gjc@760
    63
        'drop-tail-queue.h',
gjcarneiro@537
    64
        'llc-snap-header.h',
emmanuelle@976
    65
        'ethernet-header.h',
emmanuelle@976
    66
        'ethernet-trailer.h',
gjcarneiro@537
    67
        'channel.h',
gjcarneiro@537
    68
        'node-list.h',
gjcarneiro@537
    69
        'socket.h',
gjc@760
    70
        'socket-factory.h',
mathieu@1188
    71
        'packet-socket-factory.h',
tomh@3130
    72
        'udp-socket.h',
tomh@3125
    73
        'udp-socket-factory.h',
tomh@3134
    74
        'tcp-socket.h',
tomh@3132
    75
        'tcp-socket-factory.h',
gjc@760
    76
        'ipv4.h',
gjcarneiro@601
    77
        'application.h',
mathieu@2673
    78
        'simple-channel.h',
mathieu@2673
    79
        'simple-net-device.h',
vincent@3852
    80
        'inet6-socket-address.h',
vincent@3852
    81
        'ipv6-address.h',
vincent@3852
    82
        'ipv6-header.h',
craigdo@3820
    83
        'ipv4-raw-socket-factory.h',
gjcarneiro@537
    84
        ]
fw@4685
    85
fw@4685
    86
    if bld.env['WITH_NSC']:
fw@4685
    87
        node.source.append ('nsc-glue.cc')
fw@4685
    88
        node.source.append ('nsc-sysctl.cc')
fw@4685
    89
        node.uselib = 'DL'