1 /* 2 * netlink/route/cls/ematch/meta.h Metadata Match 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation version 2.1 7 * of the License. 8 * 9 * Copyright (c) 2010 Thomas Graf <tgraf@suug.ch> 10 */ 11 12 #ifndef NETLINK_CLS_EMATCH_META_H_ 13 #define NETLINK_CLS_EMATCH_META_H_ 14 15 #include <netlink/netlink.h> 16 #include <netlink/route/cls/ematch.h> 17 #include <linux/tc_ematch/tc_em_meta.h> 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 struct rtnl_meta_value; 24 25 extern struct rtnl_meta_value * rtnl_meta_value_alloc_int(uint64_t); 26 extern struct rtnl_meta_value * rtnl_meta_value_alloc_var(void *, size_t); 27 extern struct rtnl_meta_value * rtnl_meta_value_alloc_id(uint8_t, uint16_t, 28 uint8_t, uint64_t); 29 extern void rtnl_meta_value_put(struct rtnl_meta_value *); 30 31 extern void rtnl_ematch_meta_set_lvalue(struct rtnl_ematch *, 32 struct rtnl_meta_value *); 33 void rtnl_ematch_meta_set_rvalue(struct rtnl_ematch *, 34 struct rtnl_meta_value *); 35 extern void rtnl_ematch_meta_set_operand(struct rtnl_ematch *, uint8_t); 36 37 #ifdef __cplusplus 38 } 39 #endif 40 41 #endif 42