1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright 2017 6WIND S.A. 3 * Copyright 2017 Mellanox Technologies, Ltd 4 */ 5 6 #ifndef _TAP_TCMSGS_H_ 7 #define _TAP_TCMSGS_H_ 8 9 #include <tap_autoconf.h> 10 #include <linux/if_ether.h> 11 #include <linux/rtnetlink.h> 12 #include <linux/pkt_sched.h> 13 #include <linux/pkt_cls.h> 14 #include <linux/tc_act/tc_mirred.h> 15 #include <linux/tc_act/tc_gact.h> 16 #include <linux/tc_act/tc_skbedit.h> 17 #ifdef HAVE_TC_ACT_BPF 18 #include <linux/tc_act/tc_bpf.h> 19 #endif 20 #include <inttypes.h> 21 22 #include <rte_ether.h> 23 #include <tap_netlink.h> 24 25 #define MULTIQ_MAJOR_HANDLE (1 << 16) 26 27 void tc_init_msg(struct nlmsg *msg, uint16_t ifindex, uint16_t type, 28 uint16_t flags); 29 int qdisc_list(int nlsk_fd, uint16_t ifindex); 30 int qdisc_flush(int nlsk_fd, uint16_t ifindex); 31 int qdisc_create_ingress(int nlsk_fd, uint16_t ifindex); 32 int qdisc_create_multiq(int nlsk_fd, uint16_t ifindex); 33 int qdisc_add_ingress(int nlsk_fd, uint16_t ifindex); 34 int qdisc_add_multiq(int nlsk_fd, uint16_t ifindex); 35 int filter_list_ingress(int nlsk_fd, uint16_t ifindex); 36 37 #endif /* _TAP_TCMSGS_H_ */ 38