mbuf: extend meaning of QinQ stripped bit
[dpdk.git] / lib / librte_kni / rte_kni.h
index 601abdf..f1bb782 100644 (file)
@@ -22,7 +22,7 @@
 #include <rte_mempool.h>
 #include <rte_ether.h>
 
-#include <exec-env/rte_kni_common.h>
+#include <rte_kni_common.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -48,6 +48,9 @@ struct rte_kni_ops {
 
        /* Pointer to function of configuring promiscuous mode */
        int (*config_promiscusity)(uint16_t port_id, uint8_t to_on);
+
+       /* Pointer to function of configuring allmulticast mode */
+       int (*config_allmulticast)(uint16_t port_id, uint8_t to_on);
 };
 
 /**
@@ -63,13 +66,15 @@ struct rte_kni_conf {
        uint32_t core_id;   /* Core ID to bind kernel thread on */
        uint16_t group_id;  /* Group ID */
        unsigned mbuf_size; /* mbuf size */
-       struct rte_pci_addr addr;
-       struct rte_pci_id id;
+       struct rte_pci_addr addr; /* depreciated */
+       struct rte_pci_id id; /* depreciated */
 
        __extension__
        uint8_t force_bind : 1; /* Flag to bind kernel thread */
-       char mac_addr[ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
+       uint8_t mac_addr[RTE_ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
        uint16_t mtu;
+       uint16_t min_mtu;
+       uint16_t max_mtu;
 };
 
 /**
@@ -232,6 +237,27 @@ int rte_kni_register_handlers(struct rte_kni *kni, struct rte_kni_ops *ops);
  */
 int rte_kni_unregister_handlers(struct rte_kni *kni);
 
+/**
+ * Update link carrier state for KNI port.
+ *
+ * Update the linkup/linkdown state of a KNI interface in the kernel.
+ *
+ * @param kni
+ *  pointer to struct rte_kni.
+ * @param linkup
+ *  New link state:
+ *  0 for linkdown.
+ *  > 0 for linkup.
+ *
+ * @return
+ *  On failure: -1
+ *  Previous link state == linkdown: 0
+ *  Previous link state == linkup: 1
+ */
+__rte_experimental
+int
+rte_kni_update_link(struct rte_kni *kni, unsigned int linkup);
+
 /**
  *  Close KNI device.
  */