cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

conntrack.h (2857B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (c) 2015 Nicira, Inc.
      4 */
      5
      6#ifndef OVS_CONNTRACK_H
      7#define OVS_CONNTRACK_H 1
      8
      9#include "flow.h"
     10
     11struct ovs_conntrack_info;
     12struct ovs_ct_limit_info;
     13enum ovs_key_attr;
     14
     15#if IS_ENABLED(CONFIG_NF_CONNTRACK)
     16int ovs_ct_init(struct net *);
     17void ovs_ct_exit(struct net *);
     18bool ovs_ct_verify(struct net *, enum ovs_key_attr attr);
     19int ovs_ct_copy_action(struct net *, const struct nlattr *,
     20		       const struct sw_flow_key *, struct sw_flow_actions **,
     21		       bool log);
     22int ovs_ct_action_to_attr(const struct ovs_conntrack_info *, struct sk_buff *);
     23
     24int ovs_ct_execute(struct net *, struct sk_buff *, struct sw_flow_key *,
     25		   const struct ovs_conntrack_info *);
     26int ovs_ct_clear(struct sk_buff *skb, struct sw_flow_key *key);
     27
     28void ovs_ct_fill_key(const struct sk_buff *skb, struct sw_flow_key *key,
     29		     bool post_ct);
     30int ovs_ct_put_key(const struct sw_flow_key *swkey,
     31		   const struct sw_flow_key *output, struct sk_buff *skb);
     32void ovs_ct_free_action(const struct nlattr *a);
     33
     34#define CT_SUPPORTED_MASK (OVS_CS_F_NEW | OVS_CS_F_ESTABLISHED | \
     35			   OVS_CS_F_RELATED | OVS_CS_F_REPLY_DIR | \
     36			   OVS_CS_F_INVALID | OVS_CS_F_TRACKED | \
     37			   OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT)
     38#else
     39#include <linux/errno.h>
     40
     41static inline int ovs_ct_init(struct net *net) { return 0; }
     42
     43static inline void ovs_ct_exit(struct net *net) { }
     44
     45static inline bool ovs_ct_verify(struct net *net, int attr)
     46{
     47	return false;
     48}
     49
     50static inline int ovs_ct_copy_action(struct net *net, const struct nlattr *nla,
     51				     const struct sw_flow_key *key,
     52				     struct sw_flow_actions **acts, bool log)
     53{
     54	return -ENOTSUPP;
     55}
     56
     57static inline int ovs_ct_action_to_attr(const struct ovs_conntrack_info *info,
     58					struct sk_buff *skb)
     59{
     60	return -ENOTSUPP;
     61}
     62
     63static inline int ovs_ct_execute(struct net *net, struct sk_buff *skb,
     64				 struct sw_flow_key *key,
     65				 const struct ovs_conntrack_info *info)
     66{
     67	kfree_skb(skb);
     68	return -ENOTSUPP;
     69}
     70
     71static inline int ovs_ct_clear(struct sk_buff *skb,
     72			       struct sw_flow_key *key)
     73{
     74	return -ENOTSUPP;
     75}
     76
     77static inline void ovs_ct_fill_key(const struct sk_buff *skb,
     78				   struct sw_flow_key *key,
     79				   bool post_ct)
     80{
     81	key->ct_state = 0;
     82	key->ct_zone = 0;
     83	key->ct.mark = 0;
     84	memset(&key->ct.labels, 0, sizeof(key->ct.labels));
     85	/* Clear 'ct_orig_proto' to mark the non-existence of original
     86	 * direction key fields.
     87	 */
     88	key->ct_orig_proto = 0;
     89}
     90
     91static inline int ovs_ct_put_key(const struct sw_flow_key *swkey,
     92				 const struct sw_flow_key *output,
     93				 struct sk_buff *skb)
     94{
     95	return 0;
     96}
     97
     98static inline void ovs_ct_free_action(const struct nlattr *a) { }
     99
    100#define CT_SUPPORTED_MASK 0
    101#endif /* CONFIG_NF_CONNTRACK */
    102
    103#if IS_ENABLED(CONFIG_NETFILTER_CONNCOUNT)
    104extern struct genl_family dp_ct_limit_genl_family;
    105#endif
    106#endif /* ovs_conntrack.h */