Commit Graph

29 Commits

Author SHA1 Message Date
meijian
35f8c19112 [net][route] fix Mico definition bug
Signed-off-by: meijian <meijian@xiaomi.com>
2024-05-14 22:05:35 +08:00
Zhe Weng
3b74cfecc2 net/route: Support longest prefix match for routing
Support longest prefix match routing described as "Longest Match" in
RFC 1812, Section 5.2.4.3, Page 75.

Introduced `prefixlen` to indicate the prefix length of currently
founded route, and only looks up for longer prefix in all later steps.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-01-09 05:58:10 -08:00
Alin Jerpelea
37d5c1b0d9 net: Author Gregory Nutt: update licenses to Apache
Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-02-20 00:38:18 -08:00
Alin Jerpelea
7dc7ef45f1 net: nxstyle fixes
Nxstyle fixes to pass CI.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-02-20 00:38:18 -08:00
patacongo
3a3539f2be net/: Fix some new problems found by the current nxstyle with .c files in the net/ directory. (#92) 2020-01-13 21:26:04 +01:00
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
Gregory Nutt
b54ffe858a Standardization of some function headers. 2018-03-13 09:52:27 -06:00
Gregory Nutt
c76774cfb0 net/route: Add logic to mark a route as most-recently-used in the route cache. 2017-10-02 07:29:02 -06:00
Gregory Nutt
c4d03d81e2 Update some comments 2017-09-29 12:10:03 -06:00
Gregory Nutt
ae78a925eb Add support for an in-memory routing table cache in order to improve performance when the routing table is retained in a file. The cache holds the most recently used routing table entries and so can eliminate some file access.
Squashed commit of the following:

    net/route:  Flush in cache when any entry is deleted from the routing table.  When a router matching an IP address is found, add the routing table entry to the cache.

    net/route:  Add utility functions to manage an in-memory cache to improve performance when use a file-based routing table.
2017-09-29 12:04:45 -06:00
Gregory Nutt
4dceea4901 Network routing table: Trivial name changes to make IPv4 and IPv6 more symmetric. Add debug logic to dump the content of the router table. 2017-08-10 16:18:06 -06:00
Gregory Nutt
f506a49295 Networking routing table: Cosmetic naming to make IPv4 and IPv6 routing table logic symmetry. 2017-08-10 09:14:31 -06:00
Gregory Nutt
2ada7d5892 IPv6: Remove comparisons to the address with all ones set. IPv6 does not support broadcast addresses and certainly not in that form. Replace with multicast addresses beginning with 0xff02. 2017-08-07 11:50:50 -06:00
Gregory Nutt
d5207efb5a Be consistent... Use Name: consistent in function headers vs Function: 2017-04-21 16:33:14 -06:00
Gregory Nutt
6209c51206 net/: More clean-up of spacing/alignment issues 2015-10-08 15:10:04 -06:00
Gregory Nutt
ab50e9d04d Networking: Get rid of g_ipv4_allzeroaddr and g_ipv4_alloneaddr. It is more efficient and more intuitive to use INADDR_ANY and INADDR_BROADCAST 2015-05-29 15:16:11 -06:00
Gregory Nutt
8cb4e78a1a Complete implementation of the IPv6 routing logic. From Max Neklyudov. 2015-05-13 07:22:02 -06:00
Gregory Nutt
59c0757183 Fix a few more dangling IPv6 issues found by code inspection 2015-01-18 10:33:27 -06:00
Gregory Nutt
2663538b0a Networking: Replace all references to the macros net_ipaddr_copy, net_ipaddr_hdrcopy, net_ipaddr_cmp, net_ipaddr_hdrcmp, and net_ipaddr_maskcmp with the appropriate IPv4 or IPv6 version of the macro (such as net_ipv4addr_copy). The goal is to support both IPv4 and IPv6 simultaneously. This requires that the macros be distinct and not conditionally defined to one on or the other. 2015-01-16 13:01:08 -06:00
Gregory Nutt
5e938941a6 Networking: Replace all references to net_ipaddr_t with either in_addr_t on net_ipv6addr_t. The goal is to support both IPv4 and IPv6 simultaneously. This requires that the two types be distinct and not conditionally typedef'ed to net_ipaddr_t. 2015-01-16 12:30:18 -06:00
Gregory Nutt
b36dbe1d89 Add logic to netdev_findbyaddr() to return the correct network device for the case where a broadcast address is used. This change caused trivial ripples through other files because additional parameters are required for netdev_findbyaddr() when CONFIG_NET_MULTINIC 2014-11-23 11:00:22 -06:00
Gregory Nutt
43d036f587 Network routing: Refuse to perform routing table lookups for the Broadcast IP address. From Brennan Ashton 2014-11-23 08:36:34 -06:00
Gregory Nutt
80fc094734 Make tcp_listener static scope; it is not used outside of tcp_conn.c 2014-11-22 07:14:17 -06:00
Gregory Nutt
e03c764d92 I don't think that the net_route function has ever worked correctly. The source ip was updated in the match struct instead of the route ip. From Brennan Ashton. 2014-11-14 16:45:25 -06:00
Gregory Nutt
60246e613b NET: emoved all includes of uip.h; added includes of ip.h wherever needed. Tried to fix problems of the now missing sneak inclusions because uip.h was removed. There are probably a few of these that were missed. 2014-07-04 19:13:08 -06:00
Gregory Nutt
c362f21815 NET: Rename uip_ipaddr* to net_ipaddr* 2014-06-29 13:11:08 -06:00
Gregory Nutt
899dc193ca NET: Renaming of IP address types 2014-06-29 12:22:50 -06:00
Gregory Nutt
76fa58ee00 Move all socket-related files from net/ to net/socket. Move net/net.h to net/socket/socket.h 2014-06-28 17:25:18 -06:00
Gregory Nutt
d120befd39 NET: Move routing table functions to net/route 2014-06-26 13:02:08 -06:00