DPDK 22.11.0-rc2
rte_kni.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
3 */
4
5#ifndef _RTE_KNI_H_
6#define _RTE_KNI_H_
7
20#include <rte_pci.h>
21#include <rte_ether.h>
22
23#include <rte_kni_common.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29struct rte_kni;
30struct rte_mbuf;
31
36 uint16_t port_id; /* Port ID */
37
38 /* Pointer to function of changing MTU */
39 int (*change_mtu)(uint16_t port_id, unsigned int new_mtu);
40
41 /* Pointer to function of configuring network interface */
42 int (*config_network_if)(uint16_t port_id, uint8_t if_up);
43
44 /* Pointer to function of configuring mac address */
45 int (*config_mac_address)(uint16_t port_id, uint8_t mac_addr[]);
46
47 /* Pointer to function of configuring promiscuous mode */
48 int (*config_promiscusity)(uint16_t port_id, uint8_t to_on);
49
50 /* Pointer to function of configuring allmulticast mode */
51 int (*config_allmulticast)(uint16_t port_id, uint8_t to_on);
52};
53
58 /*
59 * KNI name which will be used in relevant network device.
60 * Let the name as short as possible, as it will be part of
61 * memzone name.
62 */
63 char name[RTE_KNI_NAMESIZE];
64 uint32_t core_id; /* Core ID to bind kernel thread on */
65 uint16_t group_id; /* Group ID */
66 unsigned mbuf_size; /* mbuf size */
67 struct rte_pci_addr addr; /* depreciated */
68 struct rte_pci_id id; /* depreciated */
69
70 __extension__
71 uint8_t force_bind : 1; /* Flag to bind kernel thread */
72 uint8_t mac_addr[RTE_ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
73 uint16_t mtu;
74 uint16_t min_mtu;
75 uint16_t max_mtu;
76};
77
92int rte_kni_init(unsigned int max_kni_ifaces);
93
94
118struct rte_kni *rte_kni_alloc(struct rte_mempool *pktmbuf_pool,
119 const struct rte_kni_conf *conf, struct rte_kni_ops *ops);
120
135int rte_kni_release(struct rte_kni *kni);
136
149int rte_kni_handle_request(struct rte_kni *kni);
150
167unsigned rte_kni_rx_burst(struct rte_kni *kni, struct rte_mbuf **mbufs,
168 unsigned num);
169
186unsigned rte_kni_tx_burst(struct rte_kni *kni, struct rte_mbuf **mbufs,
187 unsigned num);
188
199struct rte_kni *rte_kni_get(const char *name);
200
209const char *rte_kni_get_name(const struct rte_kni *kni);
210
224int rte_kni_register_handlers(struct rte_kni *kni, struct rte_kni_ops *ops);
225
236int rte_kni_unregister_handlers(struct rte_kni *kni);
237
255__rte_experimental
256int
257rte_kni_update_link(struct rte_kni *kni, unsigned int linkup);
258
262void rte_kni_close(void);
263
264#ifdef __cplusplus
265}
266#endif
267
268#endif /* _RTE_KNI_H_ */
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:25
unsigned rte_kni_rx_burst(struct rte_kni *kni, struct rte_mbuf **mbufs, unsigned num)
int rte_kni_init(unsigned int max_kni_ifaces)
int rte_kni_unregister_handlers(struct rte_kni *kni)
struct rte_kni * rte_kni_get(const char *name)
const char * rte_kni_get_name(const struct rte_kni *kni)
struct rte_kni * rte_kni_alloc(struct rte_mempool *pktmbuf_pool, const struct rte_kni_conf *conf, struct rte_kni_ops *ops)
void rte_kni_close(void)
__rte_experimental int rte_kni_update_link(struct rte_kni *kni, unsigned int linkup)
int rte_kni_release(struct rte_kni *kni)
int rte_kni_handle_request(struct rte_kni *kni)
unsigned rte_kni_tx_burst(struct rte_kni *kni, struct rte_mbuf **mbufs, unsigned num)
int rte_kni_register_handlers(struct rte_kni *kni, struct rte_kni_ops *ops)