\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /usr/include/linux/

Viewing File: vzctl_netstat.h

/*
 *  include/uapi/linux/vzctl_netstat.h
 *
 *  Copyright (c) 2015 Parallels IP Holdings GmbH
 *
 */

#ifndef __VZCTL_NETSTAT_H__
#define __VZCTL_NETSTAT_H__

#include <linux/types.h>
#include <linux/ioctl.h>

#ifndef __ENVID_T_DEFINED__
# define __ENVID_T_DEFINED__
typedef unsigned int envid_t;
#endif

/*
 * Traffic accouting management ioctl
 */

struct vz_tc_class_info {
	__u32				cid;	/* class number */
	__u32				addr;	/* Network byte order */
	__u32				mask;	/* subnet mask */
	/*
	 * On any changes to this struct keep in mind fixing
	 * all copy_to_user instances, initializing new fields/paddings
	 * to prevent possible leaks from kernel-space.
	 */
};


struct vzctl_tc_classes {
	struct vz_tc_class_info		*info;
	int				length;
};

/* For IPv6 */
struct vz_tc_class_info_v6 {
	__u32				cid;	/* class number */
	__u32				addr[4];/* Network byte order */
	__u32				mask[4];/* subnet mask */
	/*
	 * On any changes to this struct keep in mind fixing
	 * all copy_to_user instances, initializing new fields/paddings
	 * to prevent possible leaks from kernel-space.
	 */
};

struct vzctl_tc_classes_v6 {
	struct vz_tc_class_info_v6	*info;
	int				length;
};

struct vzctl_tc_get_stat {
	envid_t				veid;
	__u64				*incoming;
	__u64				*outgoing;
	__u32				*incoming_pkt;
	__u32				*outgoing_pkt;
	int				length;
};

struct vzctl_tc_get_stat_list {
	envid_t				*list;
	int				length;
};

struct vzctl_tc_set_base {
	envid_t				veid;
	__u16				base;
};

#define VZTCCTLTYPE			'='
#define VZCTL_TC_MAX_CLASS		_IO(VZTCCTLTYPE, 1)
#define VZCTL_TC_CLASS_NUM		_IO(VZTCCTLTYPE, 2)
#define VZCTL_TC_SET_CLASS_TABLE	_IOW(VZTCCTLTYPE, 3, struct vzctl_tc_classes)
#define VZCTL_TC_GET_CLASS_TABLE	_IOR(VZTCCTLTYPE, 4, struct vzctl_tc_classes)
#define VZCTL_TC_STAT_NUM		_IO(VZTCCTLTYPE, 5)
#define VZCTL_TC_GET_STAT_LIST		_IOR(VZTCCTLTYPE, 6, struct vzctl_tc_get_stat_list)
#define VZCTL_TC_GET_STAT		_IOR(VZTCCTLTYPE, 7, struct vzctl_tc_get_stat)
#define VZCTL_TC_DESTROY_STAT		_IO(VZTCCTLTYPE, 8)
#define VZCTL_TC_DESTROY_ALL_STAT	_IO(VZTCCTLTYPE, 9)

#define VZCTL_TC_GET_BASE		_IO(VZTCCTLTYPE, 11)
#define VZCTL_TC_SET_BASE		_IOW(VZTCCTLTYPE, 12, struct vzctl_tc_set_base)

#define VZCTL_TC_GET_STAT_V6		_IOR(VZTCCTLTYPE, 13, struct vzctl_tc_get_stat)
#define VZCTL_TC_SET_CLASS_TABLE_V6	_IOW(VZTCCTLTYPE, 14, struct vzctl_tc_classes_v6)
#define VZCTL_TC_GET_CLASS_TABLE_V6	_IOR(VZTCCTLTYPE, 15, struct vzctl_tc_classes_v6)

#define VZCTL_TC_CLASS_NUM_V6		_IO(VZTCCTLTYPE, 16)

#define VZCTL_TC_CLEAR_STAT		_IO(VZTCCTLTYPE, 17)
#define VZCTL_TC_CLEAR_ALL_STAT		_IO(VZTCCTLTYPE, 18)


#endif /* __VZCTL_NETSTAT_H__ */