Project

General

Profile

Feature #4534

Recognize IEEE802.11 interfaces on WSL

Added by Junxiao Shi about 2 years ago. Updated about 2 years ago.

Status:
Rejected
Priority:
Low
Assignee:
-
Category:
Network
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

In Ubuntu on Windows (Windows 10 Home, version 1709, build 16299.248), WiFi network interfaces are presented as "link/ieee802.11" instead of "link/ether". Such WiFi interfaces are capable of UDP multicast, as tested with netcat.
NetworkMonitor currently only recognizes "link/loopback" and "link/ether" interface types, as indicated in DEBUG logs. It should recognize "link/ieee802.11" as well.

History

#1

Updated by Davide Pesavento about 2 years ago

  • Project changed from NFD to ndn-cxx
  • Subject changed from UDP multicast on ieee802.11 interfaces to Recognize IEEE802.11 interfaces on WSL
  • Category changed from Faces to Network
  • Priority changed from Normal to Low
  • Target version set to Unsupported

UdpFactory is innocent. It only checks that the interface isn't loopback and that it supports multicast (as indicated by the interface flags). What you're seeing is likely caused by the fact that ndn-cxx's NetworkMonitor ignores all interfaces whose type is neither ARPHRD_ETHER nor ARPHRD_LOOPBACK. Normally, WiFi interfaces are ARPHRD_ETHER.

I have no idea what "link/ieee802.11" means, I guess it's ARPHRD_IEEE80211, but I need more info. Please attach a TRACE log of the ndn.NetworkMonitor module.

#2

Updated by Junxiao Shi about 2 years ago

NFD log, filtered by UdpFactory and ndn.NetworkMonitor:

1520206522.564011 TRACE: [ndn.NetworkMonitor] creating netlink socket
1520206522.564070 TRACE: [ndn.NetworkMonitor] our pid is 34
1520206522.564124 TRACE: [ndn.NetworkMonitor] enumerating links
1520206522.601948 INFO: [UdpFactory] enabling multicast on 224.0.23.170:56363
1520206522.601983 INFO: [UdpFactory] enabling multicast on [ff02::1234]:56363
1520206522.604959 TRACE: [ndn.NetworkMonitor] read 80 bytes from netlink socket
1520206522.604983 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=16<NEWLINK> len=80 seq=581442653 pid=34
1520206522.605018 DEBUG: [ndn.NetworkMonitor] adding interface eth0
1520206522.605044 DEBUG: [UdpFactory] Not creating multicast faces on eth0: netif is down
1520206522.605060 TRACE: [ndn.NetworkMonitor] read 76 bytes from netlink socket
1520206522.605066 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=16<NEWLINK> len=76 seq=581442653 pid=34
1520206522.605072 DEBUG: [ndn.NetworkMonitor] adding interface lo
1520206522.605077 DEBUG: [UdpFactory] Not creating multicast faces on lo: netif is loopback
1520206522.605089 TRACE: [ndn.NetworkMonitor] read 80 bytes from netlink socket
1520206522.605093 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=16<NEWLINK> len=80 seq=581442653 pid=34
1520206522.605097 DEBUG: [ndn.NetworkMonitor] unhandled interface type 801
1520206522.605107 TRACE: [ndn.NetworkMonitor] read 80 bytes from netlink socket
1520206522.605110 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=16<NEWLINK> len=80 seq=581442653 pid=34
1520206522.605123 DEBUG: [ndn.NetworkMonitor] unhandled interface type 801
1520206522.605135 TRACE: [ndn.NetworkMonitor] read 88 bytes from netlink socket
1520206522.605138 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=16<NEWLINK> len=88 seq=581442653 pid=34
1520206522.605142 DEBUG: [ndn.NetworkMonitor] adding interface eth1
1520206522.605149 DEBUG: [UdpFactory] Not creating multicast faces on eth1: netif cannot multicast
1520206522.605166 TRACE: [ndn.NetworkMonitor] read 16 bytes from netlink socket
1520206522.605169 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=3<DONE> len=16 seq=581442653 pid=34
1520206522.605173 TRACE: [ndn.NetworkMonitor] enumerating addresses
1520206522.605203 TRACE: [ndn.NetworkMonitor] read 60 bytes from netlink socket
1520206522.605207 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=60 seq=581442654 pid=34
1520206522.605219 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605223 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605240 DEBUG: [ndn.NetworkMonitor] added address fe80::6974:62f5:51eb:d4de%eth0/64 to eth0
1520206522.605397 TRACE: [ndn.NetworkMonitor] read 60 bytes from netlink socket
1520206522.605403 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=60 seq=581442654 pid=34
1520206522.605414 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605417 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605421 DEBUG: [ndn.NetworkMonitor] added address ::1/128 to lo
1520206522.605433 TRACE: [ndn.NetworkMonitor] read 60 bytes from netlink socket
1520206522.605437 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=60 seq=581442654 pid=34
1520206522.605440 TRACE: [ndn.NetworkMonitor] unknown interface index 17
1520206522.605450 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605453 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605457 TRACE: [ndn.NetworkMonitor] unknown interface index 17
1520206522.605465 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605468 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605471 TRACE: [ndn.NetworkMonitor] unknown interface index 17
1520206522.605480 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605484 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605488 TRACE: [ndn.NetworkMonitor] unknown interface index 17
1520206522.605497 TRACE: [ndn.NetworkMonitor] read 60 bytes from netlink socket
1520206522.605500 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=60 seq=581442654 pid=34
1520206522.605504 TRACE: [ndn.NetworkMonitor] unknown interface index 5
1520206522.605513 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605516 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605520 TRACE: [ndn.NetworkMonitor] unknown interface index 5
1520206522.605529 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605532 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605547 DEBUG: [ndn.NetworkMonitor] added address 2001:0:4137:9e76:145f:1ac5:9f00:3259/64 to eth1
1520206522.605561 TRACE: [ndn.NetworkMonitor] read 64 bytes from netlink socket
1520206522.605564 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=20<NEWADDR> len=64 seq=581442654 pid=34
1520206522.605569 DEBUG: [ndn.NetworkMonitor] added address fe80::145f:1ac5:9f00:3259%eth1/64 to eth1
1520206522.605626 TRACE: [ndn.NetworkMonitor] read 16 bytes from netlink socket
1520206522.605631 TRACE: [ndn.NetworkMonitor] parsing multi-part message type=3<DONE> len=16 seq=581442654 pid=34
1520206522.605635 DEBUG: [ndn.NetworkMonitor] enumeration complete

ip addr output:

10: eth0: <> mtu 1500 group default qlen 1
    link/ether 3c:a0:67:f4:11:66
    inet 169.254.212.222/16 brd 169.254.255.255 scope global dynamic 
       valid_lft forever preferred_lft forever
    inet6 fe80::6974:62f5:51eb:d4de/64 scope global dynamic 
       valid_lft forever preferred_lft forever
1: lo: <LOOPBACK,UP> mtu 1500 group default qlen 1
    link/loopback 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope global dynamic 
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope global dynamic 
       valid_lft forever preferred_lft forever
17: wifi0: <BROADCAST,MULTICAST,UP> mtu 1500 group default qlen 1
    link/ieee802.11 3c:a0:67:f4:11:65
    inet 192.168.5.46/24 brd 192.168.5.255 scope global dynamic 
       valid_lft 85641sec preferred_lft 85641sec
    inet6 2002:ad49:f289:e472::1000/128 scope global dynamic 
       valid_lft forever preferred_lft forever
    inet6 2002:ad49:f289:e472::1001/128 scope global dynamic 
       valid_lft 70234sec preferred_lft 70234sec
    inet6 fe80::10b7:9ed1:3c54:550c/64 scope global dynamic 
       valid_lft forever preferred_lft forever
5: wifi1: <> mtu 1500 group default qlen 1
    link/ieee802.11 3e:a0:67:f4:11:65
    inet 169.254.191.163/16 brd 169.254.255.255 scope global dynamic 
       valid_lft forever preferred_lft forever
    inet6 fe80::f417:3381:c0b2:bfa3/64 scope global dynamic 
       valid_lft forever preferred_lft forever
8: eth1: <UP> mtu 1472 group default qlen 1
    link/ether 00:00:00:00:00:00:00:e0:00:00:00:00:00:00:00:00
    inet6 2001:0:4137:9e76:145f:1ac5:9f00:3259/64 scope global dynamic 
       valid_lft forever preferred_lft forever
    inet6 fe80::145f:1ac5:9f00:3259/64 scope global dynamic 
       valid_lft forever preferred_lft forever
#3

Updated by Davide Pesavento about 2 years ago

  • Status changed from New to Rejected
  • Estimated time deleted (3.00 h)

1520206522.605097 DEBUG: [ndn.NetworkMonitor] unhandled interface type 801

801 is ARPHRD_IEEE80211, which means WiFi interface in monitor mode. We shouldn't touch monitor interfaces (and in some/most cases they can't transmit anyway). If your interfaces are not in monitor mode, then Microsoft's implementation of netlink is broken, open a bug with them.
As far as NetworkMonitor is concerned, this behavior (ignoring ARPHRD_IEEE80211 interfaces) is intended.

#4

Updated by Davide Pesavento about 2 years ago

  • Description updated (diff)
#6

Updated by Davide Pesavento about 2 years ago

Upstream reports that the WSL bug should be fixed in build 17627. Can you test again with that build?

Also available in: Atom PDF