fib_rules_ops
Regular
4.4
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
4.8
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
4.10
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
4.13
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
4.15
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
4.18
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.0
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.3
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.4
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.8
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.11
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.13
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.15
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
5.19
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
6.2
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
6.5
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
6.8
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
arm64
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
armhf
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
ppc64el
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
riscv64
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
aws
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
azure
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
gcp
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
lowlatency
: ✅struct fib_rules_ops {
int family;
struct list_head list;
int rule_size;
int addr_size;
int unresolved_rules;
int nr_goto_rules;
unsigned int fib_rules_seq;
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *);
int (*match)(struct fib_rule *, struct flowi *, int);
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
int (*delete)(struct fib_rule *);
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
size_t (*nlmsg_payload)(struct fib_rule *);
void (*flush_cache)(struct fib_rules_ops *);
int nlgroup;
const struct nla_policy *policy;
struct list_head rules_list;
struct module *owner;
struct net *fro_net;
struct callback_head rcu;
};
Regular
4.4
and 4.8
✅
4.8
and 4.10
✅
4.10
and 4.13
✅
4.13
and 4.15
⚠️unsigned int fib_rules_seq
4.15
and 4.18
⚠️int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **)
➡️ int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *)
4.18
and 5.0
✅
5.0
and 5.3
✅
5.3
and 5.4
✅
5.4
and 5.8
✅
5.8
and 5.11
✅
5.11
and 5.13
✅
5.13
and 5.15
⚠️bool (*suppress)(struct fib_rule *, struct fib_lookup_arg *)
➡️ bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *)
5.15
and 5.19
⚠️const struct nla_policy *policy
5.19
and 6.2
✅
6.2
and 6.5
✅
6.5
and 6.8
✅
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅