X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_kni%2Frte_kni.h;h=b0eaf4610416644fcc7dff9c64b154242a538824;hb=e863fe3a13da89787fdf3b5c590101a3c0f10af6;hp=c4dcfffa15c319a9632a10e35591b1aeb973a3b9;hpb=369991d997e4abdee355e19ffbb41a4d246cafa2;p=dpdk.git diff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h index c4dcfffa15..b0eaf46104 100644 --- a/lib/librte_kni/rte_kni.h +++ b/lib/librte_kni/rte_kni.h @@ -20,8 +20,9 @@ #include #include #include +#include -#include +#include #ifdef __cplusplus extern "C" { @@ -41,6 +42,15 @@ struct rte_kni_ops { /* Pointer to function of configuring network interface */ int (*config_network_if)(uint16_t port_id, uint8_t if_up); + + /* Pointer to function of configuring mac address */ + int (*config_mac_address)(uint16_t port_id, uint8_t mac_addr[]); + + /* 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); }; /** @@ -56,24 +66,32 @@ 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 */ + uint8_t mac_addr[RTE_ETHER_ADDR_LEN]; /* MAC address assigned to KNI */ + uint16_t mtu; + uint16_t min_mtu; + uint16_t max_mtu; }; /** * Initialize and preallocate KNI subsystem * - * This function is to be executed on the MASTER lcore only, after EAL + * This function is to be executed on the main lcore only, after EAL * initialization and before any KNI interface is attempted to be * allocated * * @param max_kni_ifaces * The maximum number of KNI interfaces that can coexist concurrently + * + * @return + * - 0 indicates success. + * - negative value indicates failure. */ -void rte_kni_init(unsigned int max_kni_ifaces); +int rte_kni_init(unsigned int max_kni_ifaces); /** @@ -194,7 +212,7 @@ const char *rte_kni_get_name(const struct rte_kni *kni); /** * Register KNI request handling for a specified port,and it can - * be called by master process or slave process. + * be called by primary process or secondary process. * * @param kni * pointer to struct rte_kni. @@ -219,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. */