+\f
+/* ## ----------------- ## */
+/* ## Receiving Packets ## */
+/* ## ----------------- ## */
+
+/* The network provider interface is mostly used for inspecting and configuring
+ * device "metadata", not for sending and receiving packets directly. It may
+ * be impractical to implement these functions on some operating systems and
+ * hardware. These functions may all be NULL in such cases.
+ *
+ * (However, the "dpif-netdev" implementation, which is the easiest way to
+ * integrate Open vSwitch with a new operating system or hardware, does require
+ * the ability to receive packets.) */
+
+ /* Attempts to set up 'netdev' for receiving packets with ->recv().
+ * Returns 0 if successful, otherwise a positive errno value. Return
+ * EOPNOTSUPP to indicate that the network device does not implement packet
+ * reception through this interface. This function may be set to null if
+ * it would always return EOPNOTSUPP anyhow. (This will prevent the
+ * network device from being usefully used by the netdev-based "userspace
+ * datapath".)*/
+ int (*listen)(struct netdev *netdev);