On Fri, Oct 25 2019 14:53:01 +0300, Lauri Tirkkonen wrote:
> god dammit, I'm not initializing oldlinkup. sorry, retesting and sending
> new results, please ignore previous...

fixed diff of manual revert of dhclient.c r1.634:

diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c
index c5d197ee274..c0a435fa61c 100644
--- a/sbin/dhclient/dhclient.c
+++ b/sbin/dhclient/dhclient.c
@@ -345,6 +345,7 @@ rtm_dispatch(struct interface_info *ifi, struct rt_msghdr 
*rtm)
        struct ifa_msghdr               *ifam;
        struct if_ieee80211_data        *ifie;
        uint32_t                         oldmtu;
+       int                              oldlinkup;
 
        switch (rtm->rtm_type) {
        case RTM_PROPOSAL:
@@ -389,12 +390,15 @@ rtm_dispatch(struct interface_info *ifi, struct rt_msghdr 
*rtm)
                }
 
                oldmtu = ifi->mtu;
+               oldlinkup = LINK_STATE_IS_UP(ifi->link_state);
                interface_state(ifi);
-               if (oldmtu == ifi->mtu)
-                       quit = RESTART;
-               else
-                       log_debug("%s: MTU change RTM_IFINFO ignored",
-                           log_procname);
+               if (LINK_STATE_IS_UP(ifi->link_state) != oldlinkup) {
+                       if (oldmtu == ifi->mtu)
+                               quit = RESTART;
+                       else
+                               log_debug("%s: MTU change RTM_IFINFO ignored",
+                                   log_procname);
+               }
                break;
 
        case RTM_80211INFO:

and fixed results. first, "bad" (just resending previous "bad" result,
since no change occurred in this code):

$ cat test.bad
+ dhclient vio0
+ route monitor
+ > route-monitor.bad 
+ sleep 1
+ ifconfig vio0
vio0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
        lladdr 96:00:00:34:06:8e
        llprio 3
        groups: egress
        media: Ethernet autoselect
        status: active
        inet 95.217.7.62 netmask 0xffffffff
+ ping -c 1 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=18.778 ms

--- 1.1.1.1 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 18.778/18.778/18.778/0.000 ms
+ ifconfig vio0 -soii
+ sleep 1
+ ping -c 1 1.1.1.1
ping: sendmsg: Invalid argument
PING 1.1.1.1 (1.1.1.1): 56 data bytes
ping: wrote 1.1.1.1 64 chars, ret=-1

--- 1.1.1.1 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
+ ifconfig vio0
vio0: 
flags=c08843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,INET6_NOSOII,AUTOCONF4> mtu 
1500
        lladdr 96:00:00:34:06:8e
        llprio 3
        groups: egress
        media: Ethernet autoselect
        status: active
        inet 95.217.7.62 netmask 0xffffffff
+ kill -INT %1

$ cat route-monitor.bad
got message of size 168 on Fri Oct 25 11:45:38 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 168 on Fri Oct 25 11:45:38 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 168 on Fri Oct 25 11:45:38 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 168 on Fri Oct 25 11:45:38 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 96 on Fri Oct 25 11:45:38 2019
RTM_PROPOSAL: config proposal: len 96, source dhcp table 0, ifidx 1, pid: 
22261, seq -593891804, errno 0
flags:<UP,DONE,PROTO3>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
Static Routes:
Domain search:
Domain Name Servers:
got message of size 96 on Fri Oct 25 11:45:38 2019
RTM_NEWADDR: address being added to iface: len 96, metric 0, flags:
sockaddrs: <NETMASK,IFP,IFA,BRD>
 255.255.255.255 96:00:00:34:06:8e 95.217.7.62 0.0.0.0
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_ADD: Add Route: len 192, priority 1, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,LOCAL>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 95.217.7.62 96:00:00:34:06:8e 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_ADD: Add Route: len 192, priority 4, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,DONE,CLONING,CONNECTED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 95.217.7.62 95.217.7.62 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_ADD: Add Route: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 0, 
errno 0
flags:<UP,DONE,CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 172.31.1.1 95.217.7.62 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 144 on Fri Oct 25 11:45:38 2019
RTM_ADD: Add Route: len 144, priority 0, table 0, ifidx 1, pid: 678, seq 0, 
errno 17
flags:<CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK>
 172.31.1.1 95.217.7.62 255.255.255.255
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_ADD: Add Route: len 192, priority 7, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,CLONED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 172.31.1.1 link#1 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_ADD: Add Route: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 0, 
errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 
-1688123477, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:38 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 
-2029380539, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_RESOLVE: Route created by cloning: len 192, priority 7, table 0, ifidx 1, 
pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,CLONED,CACHED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 172.31.1.1 d2:74:7f:6e:37:e3 96:00:00:34:06:8e 95.217.7.62
got message of size 168 on Fri Oct 25 11:45:39 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,INET6_NOSOII>
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 
870724543, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        1   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 208 on Fri Oct 25 11:45:39 2019
RTM_DELETE: Delete Route: len 208, priority 7, table 0, ifidx 1, pid: 678, seq 
0, errno 0
flags:<UP,HOST,DONE,LLINFO,CLONED,CACHED>
fmask:
use:        2   mtu:        0    expire:     1200 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 172.31.1.1 link#1 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_DELETE: Delete Route: len 192, priority 7, table 0, ifidx 1, pid: 0, seq 0, 
errno 0
flags:<HOST,DONE,CLONED,CACHED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 172.31.1.1 link#1 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_DELETE: Delete Route: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 
1, errno 0
flags:<DONE,CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 172.31.1.1 95.217.7.62 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_ADD: Add Route: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 0, 
errno 0
flags:<UP,DONE,CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 172.31.1.1 95.217.7.62 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 144 on Fri Oct 25 11:45:39 2019
RTM_ADD: Add Route: len 144, priority 0, table 0, ifidx 1, pid: 678, seq 0, 
errno 17
flags:<CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK>
 172.31.1.1 95.217.7.62 255.255.255.255
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_ADD: Add Route: len 192, priority 7, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,CLONED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 172.31.1.1 link#1 96:00:00:34:06:8e 95.217.7.62
got message of size 160 on Fri Oct 25 11:45:39 2019
RTM_ADD: Add Route: len 160, priority 0, table 0, ifidx 1, pid: 678, seq 0, 
errno 17
flags:<GATEWAY,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 95.217.7.62
got message of size 192 on Fri Oct 25 11:45:39 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 678, seq 
-1044169088, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        1   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62


then, "good" results with the fixed diff:

$ cat test.good
+ dhclient vio0
+ route monitor
+ > route-monitor.good 
+ sleep 1
+ ifconfig vio0
vio0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
        lladdr 96:00:00:34:06:8e
        llprio 3
        groups: egress
        media: Ethernet autoselect
        status: active
        inet 95.217.7.62 netmask 0xffffffff
+ ping -c 1 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=7.798 ms

--- 1.1.1.1 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 7.798/7.798/7.798/0.000 ms
+ ifconfig vio0 -soii
+ sleep 1
+ ping -c 1 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=7.962 ms

--- 1.1.1.1 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 7.962/7.962/7.962/0.000 ms
+ ifconfig vio0
vio0: 
flags=c08843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,INET6_NOSOII,AUTOCONF4> mtu 
1500
        lladdr 96:00:00:34:06:8e
        llprio 3
        groups: egress
        media: Ethernet autoselect
        status: active
        inet 95.217.7.62 netmask 0xffffffff
+ kill -INT %1

$ cat route-monitor.good
got message of size 168 on Fri Oct 25 12:00:10 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 168 on Fri Oct 25 12:00:10 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 168 on Fri Oct 25 12:00:10 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 168 on Fri Oct 25 12:00:10 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 96 on Fri Oct 25 12:00:10 2019
RTM_PROPOSAL: config proposal: len 96, source dhcp table 0, ifidx 1, pid: 
46916, seq -588812676, errno 0
flags:<UP,DONE,PROTO3>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
Static Routes:
Domain search:
Domain Name Servers:
got message of size 96 on Fri Oct 25 12:00:11 2019
RTM_NEWADDR: address being added to iface: len 96, metric 0, flags:
sockaddrs: <NETMASK,IFP,IFA,BRD>
 255.255.255.255 96:00:00:34:06:8e 95.217.7.62 0.0.0.0
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_ADD: Add Route: len 192, priority 1, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,LOCAL>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 95.217.7.62 96:00:00:34:06:8e 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_ADD: Add Route: len 192, priority 4, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,DONE,CLONING,CONNECTED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 95.217.7.62 95.217.7.62 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_ADD: Add Route: len 192, priority 8, table 0, ifidx 1, pid: 96365, seq 0, 
errno 0
flags:<UP,DONE,CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 172.31.1.1 95.217.7.62 255.255.255.255 96:00:00:34:06:8e 95.217.7.62
got message of size 144 on Fri Oct 25 12:00:11 2019
RTM_ADD: Add Route: len 144, priority 0, table 0, ifidx 1, pid: 96365, seq 0, 
errno 17
flags:<CLONING,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK>
 172.31.1.1 95.217.7.62 255.255.255.255
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_ADD: Add Route: len 192, priority 7, table 0, ifidx 1, pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,CLONED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 172.31.1.1 link#1 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_ADD: Add Route: len 192, priority 8, table 0, ifidx 1, pid: 96365, seq 0, 
errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_RESOLVE: Route created by cloning: len 192, priority 7, table 0, ifidx 1, 
pid: 0, seq 0, errno 0
flags:<UP,HOST,DONE,LLINFO,CLONED,CACHED>
fmask:
use:        0   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 172.31.1.1 d2:74:7f:6e:37:e3 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 96365, seq 
692004841, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        4   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 192 on Fri Oct 25 12:00:11 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 96365, seq 
48078635, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        4   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62
got message of size 168 on Fri Oct 25 12:00:12 2019
RTM_IFINFO: iface status change: len 168, if# 1, name: vio0, link: active, mtu: 
1500, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,INET6_NOSOII>
got message of size 192 on Fri Oct 25 12:00:12 2019
RTM_GET: Report Metrics: len 192, priority 8, table 0, ifidx 1, pid: 96365, seq 
1167225572, errno 0
flags:<UP,GATEWAY,DONE,STATIC>
fmask:
use:        6   mtu:        0    expire:        0 
locks:  inits: 
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 0.0.0.0 172.31.1.1 0.0.0.0 96:00:00:34:06:8e 95.217.7.62

-- 
Lauri Tirkkonen | lotheac @ IRCnet

Reply via email to