.gdbinit adjusted
.gitignore
tests: added Ieee80211 carrier sense tests.

Covers mutual transmissions for in range and out of range,
synchronized and delayed scenarios.
RTPHost moved from src/transport to src/nodes/

HOST MODELS MUST ALWAYS BE PLACED INTO nodes/ (or under an example simulation)
IPv4Address: rename getBroadcastAddress() to makeBroadcastAddress()

Also: added getNetworkBroadcastAddress() to IPv4InterfaceData
MACAddress: added makeMulticastAddress()
Ieee802Ctrl.inputPort renamed to interfaceId
IPv4: routing table: added a new route check
IPv4/IPv6: renamed IPvXAddress to Address, RoutingTable to IPv4RoutingTable, etc.

IPvXAddress          -> Address
IPvXAddressResolver  -> AddressResolver
IRoutingTable        -> IIPv4RoutingTable
RoutingTable         -> IPv4RoutingTable
RoutingTable6        -> IPv6RoutingTable
RoutingTableAccess   -> IPv4RoutingTableAccess

Conflicts:
	src/applications/dhcp/DHCPClient.cc
	src/applications/dhcp/DHCPServer.h
	src/applications/generic/IPvXTrafGen.cc
	src/applications/generic/IPvXTrafGen.h
	src/applications/generic/IPvXTrafSink.h
	src/applications/pingapp/PingApp.cc
	src/applications/pingapp/PingApp.h
	src/applications/pingapp/PingTestApp.h
	src/applications/tcpapp/TCPEchoApp.cc
	src/applications/udpapp/UDPBasicApp.cc
	src/applications/udpapp/UDPBasicApp.h
	src/applications/udpapp/UDPBasicBurst.cc
	src/applications/udpapp/UDPVideoStreamSvr.h
	src/applications/voip/SimpleVoIPSender.h
	src/linklayer/ext/ExtInterface.cc
	src/linklayer/ext/ExtInterface.h
	src/networklayer/autorouting/ipv4/IPv4NetworkConfigurator.cc
	src/networklayer/ipv4/IPv4.cc
	src/networklayer/ipv4/IPv4RoutingTable.h
	src/networklayer/ipv6/IPv6RoutingTable.h
	src/networklayer/ospfv2/OSPFRouting.cc
	src/networklayer/ospfv2/OSPFRouting.h
	src/nodes/inet/NodeBase.ned
	src/nodes/mpls/LDP_LSR.ned
	src/nodes/mpls/RSVP_LSR.ned
	src/transport/rtp/RTP.cc
	src/transport/rtp/RTP.h
	src/transport/rtp/RTPHost.ned
	src/transport/tcp/TCP.h
	src/transport/tcp_lwip/TCP_lwIP.h
	src/transport/tcp_nsc/TCP_NSC.h
IPv4/IPv6: dynamic registration of upper layer protocols; merge IPv?NetworkLayer's transport gates

TCP, UDP, SCTP, RSVP, OSPF, MANET are all merged into transport gates.
Network user modules must register their protocol number by sending
an IPRegisterProtocolCommand from initialize.

Introduced an IPSocket class that wraps the registration process.
IPv4/IPv6: rename and move NetworkLayer and NetworkLayer6

- NetworkLayer was renamed to IPv4NetworkLayer and moved into src/networklayer/ipv4
- similar change for IPv6

Conflicts:
	src/nodes/inet/NodeBase.ned
	src/nodes/mpls/LDP_LSR.ned
	src/nodes/mpls/RSVP_LSR.ned
	src/transport/rtp/RTPHost.ned
ARP: minor code cleanup
ARP: factored out an IARPCache
ARP: refactoring: ARP is now next to the IPv4 module not below it; see TODO below!

Motivation:
 - performance improvement (datagrams no longer go through ARP)
 - conceptually better (packets to PPP no longer flow through ARP)
 - more consistent with how IPv6 and NeighbourDiscovery are organized

TODO:
 - update NED docu of both ARP and IPv4!
 - proxyARP is now both in IPv4 and ARP??
 - refactor ARP gates: netwIn/netwOut/arpResIn (all connecting to IPv4 though)
 - note: IPv4RoutingDecision is now only effectively used on the ip-->arp connection
ARP, IPv4: introduce/rename proxyARP parameter
InternetCloud: useProxyARP,respondToProxyARP
IPv4NetworkLayer: always turn on useProxyARP, otherwise many existing simulations break

Setting useProxyARP=false breaks about 31 smoke test cases with:
"Cannot send datagram on broadcast interface: no next-hop address and Proxy ARP is disabled."

Cause: IPv4Configurator often doesn't fill in the next-hop address in the routes!
Address: rename isIPv6() to getType()

In preparation for generalizing Address in the next commits
BIG REFACTORING: routing tables and routes now implement a common IRoutingTable and IRoute (details below)

Motivation: allow uniform access to the IPv4, IPv6 and possibly other routing tables;
e.g. some wireless networks may use MAC address as network address. Also, in
simulation it sometimes makes sense to work with simple abstract addresses like
module names, indices or IDs.

Being able to uniformly access routing tables containing different types of
addresses makes it possible to implement routing protocols in generic way.
I.e. the same DYMO module can work with IPv6, IPv6, MAC and other addresses
without change and recompiling.

Ingredients of this patch:
- generic Address class that can hold all kinds of addresses (=union)
- interfaces for generic access: IRoutingTable, IRoute, INetworkDatagram, etc.
- Ping refactoring (use generic addressing instead of hardcoded IPv4+IPv6)
- merged routing table change notification constants for IPv4 and IPv6
IPv4: implemented netfilter, ported MANET protocols to use it

- IPv4.cc/h no longer has #ifdef WITH_MANET
- INetfilter added, good for all network layer protocols