Skip to content

Conversation

@kaies0007
Copy link

No description provided.

kaies Chaouch added 5 commits April 8, 2025 15:35
During the testing process for the IOL INTACT cetification for IPv6, we discovered some issues:
'Test v6LC.2.2.25 (C): Recursive DNS (RDNSS) Option Expired' failed because netifd doesn't
support dns server expiry time (lifetime)

Test Description:
- TR1 to transmit Router Advertisement A with a lifetime 60 in the RDNSS Option.
- Configure the HUT to transmit an Echo Request with a destination of 'node1.test.example.com'.
- Observe the HUT transmitting a DNS Query to DNS-Server.
- Wait 65 seconds.
- Configure the HUT to transmit an Echo Request with a destination of node1.test.example.com.
- Observe the HUT doesn't transmit a DNS Query to DNS-Server

Solution:
- netifd will receive a list of DNS Server json objects instead of a list of DNS Server string.
each json object contain the dns server string in "dns" and dns server lifetime in "lifetime".
- the idea is to save expiration time for each server in new element  "valid_until" in struct 'dns_server'.
the function interface_ip_valid_until_handler is called each 1 second to remove expired element the
dns_server list. If at least one dns server is expired , we have to update dnsmasq config file using
function : interface_write_resolv_conf.

Signed-off-by: kaies Chaouch <kc@simonwunderlich.de>
…tc/resolv.conf

During the testing process for the IOL INTACT cetification for IPv6, we discovered some issues:
'Test v6LC.2.2.25 (D) : Search List Option' Failed because domain list are saved
under /tmp/resolv.conf/resolv.conf.auto , they are not taken in consideration by dnsmasq

Test Description:
- TR1 to transmit Router Advertisement B with a lifetime of 60 in the DNSSL Option.
- Configure the HUT to transmit an Echo Request with a destination of 'node1'.
- Observe the HUT transmitting a DNS Query to DNS-Server with the Search List.

Solution:
-netifd is adding search domain '/tmp/resolv.conf.d/resolv.conf.auto'. dnsmasq didn't
use this config file to read search domains. Also dnsmasq work as a dnsqueries forwarder and
never change in dns queries. the resolver library use /etc/resolv.conf to prepare queries to
add add search domain to the request Domain name. ( example : if the request is 'node1' it
change it to become 'node1.example.com').
-The idea is implement a function that  add/remove dns_search list in/from /etc/resolv.conf
and call it when an update is required (Interface down , up , config updated).

Signed-off-by: kaies Chaouch <kc@simonwunderlich.de>
During the testing process for the IOL INTACT cetification for IPv6, we discovered some issues:
'Test v6LC.2.2.25 (F): Search List (DNSSL) Option Expired' failed because netifd doesn't
support dns server expiry time (lifetime)

Test Description:
- TR1 to transmit Router Advertisement A. The RDNSS Option has a lifetime that lasts the
entire test. The DNSSL Option has a lifetime of 60.
- Configure the HUT to transmit an Echo Request with a destination of 'node1'.
- Observe the HUT transmitting a DNS Query to DNS-Server.
- Wait 65 seconds.
- Configure the HUT to transmit an Echo Request with a destination of 'node1'.
- Observe the HUT doesn't transmit a DNS Query to DNS-Server.

Solution:
- netifd will receive a list of DNS Search domain json objects instead of a list of DNS Search
domain string.
- The idea is to save expiration time for each server in new element "valid_until" in struct
'dns_search_domain'.
- The function interface_ip_valid_until_handler is called each 1 second to remove expired
element the dns_search_domain list. We collect expired dns search domain and remove them
using update_search_domain_entries.

Signed-off-by: kaies Chaouch <kc@simonwunderlich.de>
During the testing process for the IOL INTACT cetification for IPv6, we discovered some issues:
'Test v6LC.2.2.14 (A): Router Lifetime Updated with Same Lifetime' Failed because Routes
are not removed at the correct expiry time. lifetime is set correctly but the condition to
remove the route is wrong

Description:
- TR1 transmits the Router Advertisement (Router Lifetime: 20 seconds).
- TN2 transmits a global Echo Request to the HUT every second for 19 seconds.
- The HUT should respond to the Echo Requests from TN2 using TR1 as a first hop.
- TR1 transmits the Router Advertisement (Router Lifetime: 20 seconds).
- TN2 transmits a global Echo Request to the HUT every second for 21 seconds.
- The HUT should respond to the Echo Requests from TN2 using TR1 as a first hop
until the Router Lifetime expires. In response to the final Echo Request, the HUT

Solution:
- The function interface_ip_valid_until_handler is called each 1 second to remove expired element the
route list. the condition to remove the route should be valid_until inferior or equal from time now.
Delay of one Second cause the test to fail.
- The precision of time is not efficient because we use only seconds from 'system_get_rtime'
- change the timer of interface_ip_valid_until_handler to 500 ms instead of 1s.

Signed-off-by: kaies Chaouch <kc@simonwunderlich.de>
During the testing process for the IOL INTACT certification for IPv6, we discovered some issues:
-When an ipv6 address is removed , the route unreachable associated with the address isn't removed
because the variable v6 isn't filled with the right value.

Solution:
-We need just to fill v6 with correct value 'v6 = true' if a_old->flag is DEV_INET6

Signed-off-by: kaies Chaouch <kc@simonwunderlich.de>
@kaies0007
Copy link
Author

related to pull requests in odhcp6c and openwrt:
odhp6c: openwrt/odhcp6c#97
openwrt : openwrt/openwrt#18318

@kaies0007 kaies0007 changed the title ipv6 iol certification ipv6 iol intact certification Apr 8, 2025
@Neustradamus
Copy link

To follow this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants