package embox.net

module arp {
	option string log_level="LOG_NONE"
	source "arp.c"

	@NoRuntime depends embox.net.net_pack
	@NoRuntime depends embox.compat.libc.assert
	@NoRuntime depends embox.compat.libc.str
	@NoRuntime depends embox.net.core
	@NoRuntime depends embox.net.net_tx
	@NoRuntime depends embox.net.lib.arp
	@NoRuntime depends embox.net.neighbour
	@NoRuntime depends embox.net.skbuff
}

module icmpv4 {
	option string log_level="LOG_NONE"
	source "icmpv4.c"

	depends proto
	depends embox.compat.libc.assert
	depends embox.net.lib.icmpv4
	depends embox.net.lib.ipv4
	depends embox.net.skbuff
}

module icmpv6 {
	option string log_level="LOG_NONE"
	source "icmpv6.c"

	depends embox.net.proto
	depends embox.compat.libc.assert
	depends embox.compat.libc.str
	depends embox.net.core
	depends embox.net.lib.icmpv6
	depends embox.net.lib.ipv6
	depends embox.net.skbuff
}

module ndp {
	source "ndp.c"

	depends embox.compat.libc.assert
	depends embox.compat.libc.str
	@NoRuntime depends embox.net.lib.icmpv6
	@NoRuntime depends embox.net.lib.ipv6
	depends embox.net.net_tx
	depends embox.net.skbuff
}

module rarp {
	option string log_level="LOG_NONE"
	source "rarp.c"

	@NoRuntime depends embox.net.net_pack
	@NoRuntime depends embox.compat.libc.assert
	@NoRuntime depends embox.compat.libc.str
	@NoRuntime depends embox.net.core
	@NoRuntime depends embox.net.net_tx
	@NoRuntime depends embox.net.lib.arp
	@NoRuntime depends embox.net.neighbour
	@NoRuntime depends embox.net.skbuff
}

@DefaultImpl(route_no_net_ns)
abstract module route {
}

module route_no_net_ns extends route {
	option number route_table_size=8
	source "route.c"

	depends core /* for inetdev.c */
	depends embox.mem.pool
	@NoRuntime depends embox.lib.libds
}

module route_net_ns extends route {
	option number route_table_size=8
	source "route_net_ns.c"

	depends core /* for inetdev.c */
	depends embox.mem.pool
	@NoRuntime depends embox.lib.libds
}

module proto {
	source "proto.c"

	@NoRuntime depends embox.lib.libds
}
