X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fopenvswitch%2Fdatapath-protocol.h;h=8e07b8bd1804559655498a9d2909430bd94f2fa4;hb=7237e4f4b6155eb4854cebc0a45fe845f0950b40;hp=b0e9dfbb3cf44988291f96435a2251c6918f1714;hpb=27bcf966b4057623f7b4d856c0348a1e0eb452e0;p=openvswitch diff --git a/include/openvswitch/datapath-protocol.h b/include/openvswitch/datapath-protocol.h index b0e9dfbb..8e07b8bd 100644 --- a/include/openvswitch/datapath-protocol.h +++ b/include/openvswitch/datapath-protocol.h @@ -52,16 +52,21 @@ * those types when compiling the kernel. */ #ifdef __KERNEL__ #include +#include #define ovs_be16 __be16 #define ovs_be32 __be32 #define ovs_be64 __be64 #else -#include -#define ovs_be16 uint16_t -#define ovs_be32 uint32_t -#define ovs_be64 uint64_t +#include "openvswitch/types.h" +#include #endif +#ifndef __aligned_u64 +#define __aligned_u64 __u64 __attribute__((aligned(8))) +#endif + +#include + #define ODP_MAX 256 /* Maximum number of datapaths. */ #define ODP_DP_CREATE _IO('O', 0) @@ -74,10 +79,10 @@ #define ODP_GET_LISTEN_MASK _IOW('O', 5, int) #define ODP_SET_LISTEN_MASK _IOR('O', 6, int) -#define ODP_PORT_ATTACH _IOR('O', 7, struct odp_port) -#define ODP_PORT_DETACH _IOR('O', 8, int) -#define ODP_PORT_QUERY _IOWR('O', 9, struct odp_port) -#define ODP_PORT_LIST _IOWR('O', 10, struct odp_portvec) +#define ODP_VPORT_ATTACH _IOR('O', 7, struct odp_port) +#define ODP_VPORT_DETACH _IOR('O', 8, int) +#define ODP_VPORT_QUERY _IOWR('O', 9, struct odp_port) +#define ODP_VPORT_LIST _IOWR('O', 10, struct odp_portvec) #define ODP_FLOW_GET _IOWR('O', 13, struct odp_flow) #define ODP_FLOW_PUT _IOWR('O', 14, struct odp_flow) @@ -90,9 +95,7 @@ #define ODP_SET_SFLOW_PROBABILITY _IOR('O', 19, int) #define ODP_GET_SFLOW_PROBABILITY _IOW('O', 20, int) -#define ODP_VPORT_ADD _IOR('O', 21, struct odp_vport_add) -#define ODP_VPORT_MOD _IOR('O', 22, struct odp_vport_mod) -#define ODP_VPORT_DEL _IO('O', 23) +#define ODP_VPORT_MOD _IOR('O', 22, struct odp_port) #define ODP_VPORT_STATS_GET _IOWR('O', 24, struct odp_vport_stats_req) #define ODP_VPORT_ETHER_GET _IOWR('O', 25, struct odp_vport_ether) #define ODP_VPORT_ETHER_SET _IOW('O', 26, struct odp_vport_ether) @@ -180,12 +183,15 @@ struct odp_sflow_sample_header { uint32_t n_actions; }; -#define ODP_PORT_INTERNAL (1 << 0) /* This port is simulated. */ +#define VPORT_TYPE_SIZE 16 +#define VPORT_CONFIG_SIZE 32 struct odp_port { char devname[16]; /* IFNAMSIZ */ + char type[VPORT_TYPE_SIZE]; uint16_t port; - uint16_t flags; + uint16_t reserved1; uint32_t reserved2; + __aligned_u64 config[VPORT_CONFIG_SIZE / 8]; /* type-specific */ }; struct odp_portvec { @@ -368,24 +374,9 @@ struct odp_vport_mod { void *config; }; -struct odp_vport_stats { - uint64_t rx_packets; - uint64_t tx_packets; - uint64_t rx_bytes; - uint64_t tx_bytes; - uint64_t rx_dropped; - uint64_t tx_dropped; - uint64_t rx_errors; - uint64_t tx_errors; - uint64_t rx_frame_err; - uint64_t rx_over_err; - uint64_t rx_crc_err; - uint64_t collisions; -}; - struct odp_vport_stats_req { char devname[16]; /* IFNAMSIZ */ - struct odp_vport_stats stats; + struct rtnl_link_stats64 stats; }; struct odp_vport_ether {