\section{Predictable Network Interface Device Names}
\begin{frame}
   {Predictable Network Interface Device Names}

   \begin{itemize}

      \item \textbf{PNIDN} (\textbf{Predictable Network
         Interface Device Names}) is connected to \textbf{udev}
      and integration with \textbf{systemd}.

      \item There are now 5 types of names that devices can be
      given:
      \begin{enumerate}
         \item
         Incorporating \textbf{Firmware} or \textbf{BIOS}
         provided index numbers for on-board devices.
         Example: \verb?eno1?
         \item
         Incorporating \textbf{Firmware} or \textbf{BIOS}
         provided \textbf{PCI Express} hotplug slot index
         numbers.  Example: \verb?ens1?
         \item
         Incorporating physical and/or geographical location
         of the hardware connection.  Example: \verb?enp2s0?
         \item
         Incorporating the MAC address.  Example:
         \verb?enx7837d1ea46da?
         \item
         Using the old classic method.  Example: \verb?eth0?
      \end{enumerate}
   \end{itemize}

\end{frame}

\cprotect\note {

   For example, on a machine with two onboard \textbf{PCI}
   network interfaces that would have been \texttt{eth0} and
   \texttt{eth1}:

   \vspace{10pt}
   \begin{responsevarnoline}{\footnotesize}
$ ip link show | grep enp
2: enp4s2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000

$ ifconfig | grep enp
  enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  enp4s2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
   \end{responsevarnoline}

   These names are correlated with the physical locations of
   the hardware on the \textbf{PCI} system:
   \vspace{10pt}
   \begin{responsevarnoline}{\footnotesize}
$ lscpi | grep Ethernet
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12)
04:02.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller (rev 14)
   \end{responsevarnoline}

   The triplet of numbers at the beginning of each line from
   the \textbf{lspci} output is the bus, device (or slot),
   and function of the device; hence it reveals the physical
   location.

   Likewise, for a wireless device that previously would have
   been simply named \texttt{wlan0}:
   \vspace{10pt}
   \begin{responsevarnoline}{\footnotesize}
$ ip link show | grep wl
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000

$ lspci | grep Centrino
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
   \end{responsevarnoline}

   We see the same pattern.  It is easy to turn off the new
   scheme and go back to the classic names.  We will leave that
   as a research project.  In what follows we will mostly
   follow the classic names for definiteness and simplicity.

}

=
