%awdl0 in local and remote name for network system extension

I have a network system extension that sends flow records to my GUI app, and I saw an unusual string (%awdl0) appended to the local and remote IPv6 addresses in flow records from the UniversalControl program on my Intel iMac Pro.

fe80::f42d:14ff:fe38:7db7%awdl0
fe80::18d7:9bff:feae:2e32%awdl0

Any idea why the suffix is appended to the IPv6 address and what it means?

Here are more details about the event:

{
  "localPort" : "56604",
  "socketProtocol" : 6,
  "version" : 0,
  "programLastComponent" : "UniversalControl",
  "localName" : "fe80::f42d:14ff:fe38:7db7%awdl0",
  "time" : 716847716.50096297,
  "socketType" : 1,
  "remotePort" : "57968",
  "socketFamily" : 30,
  "procInfo" : {
    "path" : "\/System\/Library\/CoreServices\/UniversalControl.app\/Contents\/MacOS\/UniversalControl",
    "lastComponent" : "UniversalControl",
    "teamId" : "",
    "signingId" : ""
  },
  "timeStr" : "2023-09-19T20:21:56Z",
  "remoteName" : "fe80::18d7:9bff:feae:2e32%awdl0",
  "pid" : 667,
  "webHost" : "",
  "webUrl" : ""
}

And here is the flurry of flows reported including their ports:

Answered by DTS Engineer in 765202022

The percent (%) syntax identifies an address’s scope. In this example:

% ping6 fluffy.local.
PING6(56=40+8+8 bytes) fe80::1c0f:4cec:f8fd:a89f%en0 --> fe80::aa20:66ff:fe2e:49ca%en0
…

the scope is en0, which happens to be my built-in Wi-Fi interface. Scopes really matter with IPv6, so you generally only see them there.

IMPORTANT BSD interfaces names are not considered API on Apple platforms. I go into this issue in some detail in Extra-ordinary Networking.

The awdl0 is associated with Apple’s peer-to-peer Wi-Fi implementation. Again, this name isn’t API, but it’s useful to know when looking at logs.

An address family of 30 is simply AF_INET6.

So, these are IPv6 flows running over peer-to-peer Wi-Fi.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Note, the socket family = 30. IANA lists address family 30 as "MT IPv6: Multi-Topology IP version 6", and I've seen some material of Apple Wireless Direct Link (AWDL).

I guess this is the first AWDL traffic I've noticed.

Accepted Answer

The percent (%) syntax identifies an address’s scope. In this example:

% ping6 fluffy.local.
PING6(56=40+8+8 bytes) fe80::1c0f:4cec:f8fd:a89f%en0 --> fe80::aa20:66ff:fe2e:49ca%en0
…

the scope is en0, which happens to be my built-in Wi-Fi interface. Scopes really matter with IPv6, so you generally only see them there.

IMPORTANT BSD interfaces names are not considered API on Apple platforms. I go into this issue in some detail in Extra-ordinary Networking.

The awdl0 is associated with Apple’s peer-to-peer Wi-Fi implementation. Again, this name isn’t API, but it’s useful to know when looking at logs.

An address family of 30 is simply AF_INET6.

So, these are IPv6 flows running over peer-to-peer Wi-Fi.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

%awdl0 in local and remote name for network system extension
 
 
Q