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

flow_netlink.h (2485B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (c) 2007-2013 Nicira, Inc.
      4 */
      5
      6
      7#ifndef FLOW_NETLINK_H
      8#define FLOW_NETLINK_H 1
      9
     10#include <linux/kernel.h>
     11#include <linux/netlink.h>
     12#include <linux/openvswitch.h>
     13#include <linux/spinlock.h>
     14#include <linux/types.h>
     15#include <linux/rcupdate.h>
     16#include <linux/if_ether.h>
     17#include <linux/in6.h>
     18#include <linux/jiffies.h>
     19#include <linux/time.h>
     20
     21#include <net/inet_ecn.h>
     22#include <net/ip_tunnels.h>
     23
     24#include "flow.h"
     25
     26size_t ovs_tun_key_attr_size(void);
     27size_t ovs_key_attr_size(void);
     28
     29void ovs_match_init(struct sw_flow_match *match,
     30		    struct sw_flow_key *key, bool reset_key,
     31		    struct sw_flow_mask *mask);
     32
     33int ovs_nla_put_key(const struct sw_flow_key *, const struct sw_flow_key *,
     34		    int attr, bool is_mask, struct sk_buff *);
     35int parse_flow_nlattrs(const struct nlattr *attr, const struct nlattr *a[],
     36		       u64 *attrsp, bool log);
     37int ovs_nla_get_flow_metadata(struct net *net,
     38			      const struct nlattr *a[OVS_KEY_ATTR_MAX + 1],
     39			      u64 attrs, struct sw_flow_key *key, bool log);
     40
     41int ovs_nla_put_identifier(const struct sw_flow *flow, struct sk_buff *skb);
     42int ovs_nla_put_masked_key(const struct sw_flow *flow, struct sk_buff *skb);
     43int ovs_nla_put_mask(const struct sw_flow *flow, struct sk_buff *skb);
     44
     45int ovs_nla_get_match(struct net *, struct sw_flow_match *,
     46		      const struct nlattr *key, const struct nlattr *mask,
     47		      bool log);
     48
     49int ovs_nla_put_tunnel_info(struct sk_buff *skb,
     50			    struct ip_tunnel_info *tun_info);
     51
     52bool ovs_nla_get_ufid(struct sw_flow_id *, const struct nlattr *, bool log);
     53int ovs_nla_get_identifier(struct sw_flow_id *sfid, const struct nlattr *ufid,
     54			   const struct sw_flow_key *key, bool log);
     55u32 ovs_nla_get_ufid_flags(const struct nlattr *attr);
     56
     57int ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
     58			 const struct sw_flow_key *key,
     59			 struct sw_flow_actions **sfa, bool log);
     60int ovs_nla_add_action(struct sw_flow_actions **sfa, int attrtype,
     61		       void *data, int len, bool log);
     62int ovs_nla_put_actions(const struct nlattr *attr,
     63			int len, struct sk_buff *skb);
     64
     65void ovs_nla_free_flow_actions(struct sw_flow_actions *);
     66void ovs_nla_free_flow_actions_rcu(struct sw_flow_actions *);
     67
     68int nsh_key_from_nlattr(const struct nlattr *attr, struct ovs_key_nsh *nsh,
     69			struct ovs_key_nsh *nsh_mask);
     70int nsh_hdr_from_nlattr(const struct nlattr *attr, struct nshhdr *nh,
     71			size_t size);
     72
     73#endif /* flow_netlink.h */