2014-06-27 03:02:08 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
2015-06-28 22:08:57 +08:00
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
2014-06-27 03:02:08 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
menu "Routing Table Configuration"
|
|
|
|
|
|
|
|
config NET_ROUTE
|
|
|
|
bool "Routing table support"
|
|
|
|
default n
|
2017-09-28 02:03:52 +08:00
|
|
|
depends on NET_IPv4 || NET_IPv6
|
2014-06-27 03:02:08 +08:00
|
|
|
---help---
|
|
|
|
Build in support for a routing table. See include/net/route.h
|
|
|
|
|
|
|
|
if NET_ROUTE
|
|
|
|
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
choice
|
|
|
|
prompt "IPv4 routing table"
|
|
|
|
default ROUTE_IPv4_RAMROUTE
|
2017-09-28 02:03:52 +08:00
|
|
|
depends on NET_IPv4
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
|
|
|
|
config ROUTE_IPv4_RAMROUTE
|
|
|
|
bool "In-memory"
|
|
|
|
---help---
|
|
|
|
Select to used a IPv4 routing table RAM.
|
|
|
|
|
|
|
|
config ROUTE_IPv4_ROMROUTE
|
|
|
|
bool "Read-only"
|
2014-06-27 03:02:08 +08:00
|
|
|
---help---
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
Select to used a fixed read-only IPv4 routing table in FLASH or ROM.
|
|
|
|
In this case, the board-specific logic must provide a routing table
|
|
|
|
of the form of a simple array:
|
|
|
|
|
|
|
|
FAR const struct net_route_ipv4_s g_ipv4_routes[];
|
|
|
|
const unsigned int g_ipv4_nroutes;
|
|
|
|
|
|
|
|
NOTE: The read-only variable g_ipv4_nroutes must be set to the
|
|
|
|
actual number of valid entries in the array.
|
2017-09-28 02:03:52 +08:00
|
|
|
|
2017-09-29 22:33:36 +08:00
|
|
|
config ROUTE_IPv4_FILEROUTE
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
bool "File"
|
|
|
|
---help---
|
|
|
|
Select to used a IPv4 routing table in a file in a mounted file system.
|
|
|
|
|
|
|
|
endchoice # IPv4 routing table
|
|
|
|
|
|
|
|
config ROUTE_MAX_IPv4_RAMROUTES
|
|
|
|
int "Preallocated IPv4 routing table entries"
|
2017-09-28 02:03:52 +08:00
|
|
|
default 4
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
depends on ROUTE_IPv4_RAMROUTE
|
|
|
|
---help---
|
|
|
|
The number of preallocated of the IPv4 routing table entries. This
|
|
|
|
eliminates dynamica memory allocations, but limits the maximum size
|
|
|
|
of the in-memory routing table to this number.
|
|
|
|
|
2017-09-30 02:04:45 +08:00
|
|
|
config ROUTE_IPv4_CACHEROUTE
|
|
|
|
bool "In-memory IPv4 cache"
|
|
|
|
default n
|
|
|
|
depends on ROUTE_IPv4_FILEROUTE
|
|
|
|
---help---
|
|
|
|
Accessing a routing table on a file system before each packet is sent
|
|
|
|
can harm performance. This option will cache a few of the most
|
|
|
|
frequently used routing table entries in memory to reduce performance
|
|
|
|
issues.
|
|
|
|
|
|
|
|
config ROUTE_MAX_IPv4_CACHEROUTES
|
|
|
|
int "IPv4 cache size"
|
|
|
|
default 4
|
|
|
|
depends on ROUTE_IPv4_CACHEROUTE
|
|
|
|
---help---
|
2020-02-23 16:50:23 +08:00
|
|
|
This determines the maximum number of routes that can be cached in
|
2017-09-30 02:04:45 +08:00
|
|
|
memory.
|
|
|
|
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
choice
|
|
|
|
prompt "IPv6 routing table"
|
|
|
|
default ROUTE_IPv6_RAMROUTE
|
2017-09-28 02:03:52 +08:00
|
|
|
depends on NET_IPv6
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
|
|
|
|
config ROUTE_IPv6_RAMROUTE
|
|
|
|
bool "In-memory"
|
|
|
|
---help---
|
2017-09-29 22:33:36 +08:00
|
|
|
Select to use a IPv6 routing table RAM.
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
|
|
|
|
config ROUTE_IPv6_ROMROUTE
|
|
|
|
bool "Read-only"
|
|
|
|
---help---
|
2017-09-29 22:33:36 +08:00
|
|
|
Select to use a fixed read-only IPv6 routing table in FLASH or ROM.
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
In this case, the board-specific logic must provide a routing table
|
|
|
|
of the form of simply array:
|
|
|
|
|
|
|
|
FAR const struct net_route_ipv6_s g_ipv6_routes[];
|
|
|
|
const unsigned int g_ipv6_nroutes;
|
|
|
|
|
|
|
|
NOTE: The read-only variable g_ipv6_nroutes must be set to the
|
|
|
|
actual number of valid entries in the array.
|
|
|
|
|
2017-09-29 22:33:36 +08:00
|
|
|
config ROUTE_IPv6_FILEROUTE
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
bool "File"
|
|
|
|
---help---
|
2017-09-29 22:33:36 +08:00
|
|
|
Select to use a IPv6 routing table in a file in a mounted file system.
|
|
|
|
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
endchoice # IPv6 routing table
|
|
|
|
|
|
|
|
config ROUTE_MAX_IPv6_RAMROUTES
|
|
|
|
int "Preallocated IPv6 routing table entries"
|
|
|
|
default 4
|
|
|
|
depends on ROUTE_IPv6_RAMROUTE
|
2017-09-28 02:03:52 +08:00
|
|
|
---help---
|
Addes support for read-only routing tables. Prior to this change, routing tables were only support in RAM and had to be initialized with explicit logic to add the necessary routes to the routing table. With this change, routes may be defined in the pre-initialized, read-only routing table provided by the board-specific logic
This would be particularly useful, for example, in the case where there is only a single network adaptor and you want all output packets to go to the single adaptor in all cases. So for that behavior you could add a read-only routing table to the board-specific long that contains a single entry, the default route: 0.0.0.0/0.
Squashed commit of the following:
net/route: RAM and ROM routing tables build correctly in all IPv4 and IPv6 configurations.
net/route: Verify IPv6 ROM route build; Make number of ROM routes a variable, not a configuration item.
net/route: Add initial support for ROM-base, read-only routing tables.
net/route: Adjust and generalize some structures, rename some functions, and add configuration and build support that will eventually support read-only routing tables.
net/route: Some initial though experiments on use of a fixe, read-only routing table
2017-09-28 23:04:31 +08:00
|
|
|
The number of preallocated of the IPv6 routing table entries. This
|
|
|
|
eliminates dynamica memory allocations, but limits the maximum size
|
|
|
|
of the in-memory routing table to this number.
|
2014-06-27 03:02:08 +08:00
|
|
|
|
2017-09-29 22:33:36 +08:00
|
|
|
config ROUTE_FILEDIR
|
|
|
|
string "Routing table directory"
|
2019-11-23 21:58:50 +08:00
|
|
|
default LIBC_TMPDIR
|
2017-09-29 22:33:36 +08:00
|
|
|
depends on ROUTE_IPv4_FILEROUTE || ROUTE_IPv6_FILEROUTE
|
|
|
|
---help---
|
|
|
|
Provides the full path to location in the file system where routing
|
|
|
|
table will be accessed. This is a string and should not include
|
2021-02-25 20:48:46 +08:00
|
|
|
any trailing '/'.
|
2017-09-29 22:33:36 +08:00
|
|
|
|
2017-09-30 02:04:45 +08:00
|
|
|
config ROUTE_IPv6_CACHEROUTE
|
|
|
|
bool "In-memory IPv6 cache"
|
|
|
|
default n
|
|
|
|
depends on ROUTE_IPv6_FILEROUTE
|
|
|
|
---help---
|
|
|
|
Accessing a routing table on a file system before each packet is sent
|
|
|
|
can harm performance. This option will cache a few of the most
|
|
|
|
frequently used routing table entries in memory to reduce performance
|
|
|
|
issues.
|
|
|
|
|
|
|
|
config ROUTE_MAX_IPv6_CACHEROUTES
|
|
|
|
int "IPv6 cache size"
|
|
|
|
default 4
|
|
|
|
depends on ROUTE_IPv6_CACHEROUTE
|
|
|
|
---help---
|
2020-02-23 16:50:23 +08:00
|
|
|
This determines the maximum number of routes that can be cached in
|
2017-09-30 02:04:45 +08:00
|
|
|
memory.
|
|
|
|
|
2023-12-29 16:12:11 +08:00
|
|
|
config ROUTE_LONGEST_MATCH
|
|
|
|
bool "Enable longest prefix match support"
|
|
|
|
default y
|
|
|
|
---help---
|
|
|
|
Enable support for longest prefix match routing.
|
|
|
|
("Longest Match" in RFC 1812, Section 5.2.4.3, Page 75)
|
|
|
|
|
2014-06-27 03:02:08 +08:00
|
|
|
endif # NET_ROUTE
|
2023-12-29 16:12:11 +08:00
|
|
|
endmenu # Routing Table Configuration
|