The commit is pushed to "branch-rh7-3.10.0-123.1.2-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-123.1.2.vz7.4.9 ------> commit ec888edb0dcfbfb717a685797a62273a5d3281d9 Author: Kirill Tkhai <ktk...@odin.com> Date: Thu Apr 30 20:06:11 2015 +0400
ve: add config options for vzlist and vznetstat modules Port diff-vz-hookin-generic-3 + CONFIG_VZ_LIST + CONFIG_VE_NETDEV_ACCOUNTING https://jira.sw.ru/browse/PSBM-19217 Signed-off-by: Kirill Tkhai <ktk...@odin.com> --- config.OpenVZ | 2 ++ include/linux/vznetstat.h | 40 ++++++++++++++++++++++++++++++++++------ kernel/Kconfig.openvz | 17 +++++++++++++++++ kernel/ve/Makefile | 8 +++----- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/config.OpenVZ b/config.OpenVZ index 250b85d..35f2609 100644 --- a/config.OpenVZ +++ b/config.OpenVZ @@ -5269,8 +5269,10 @@ CONFIG_CHECKPOINT_RESTORE=y # CONFIG_VE=y CONFIG_VE_CALLS=m +CONFIG_VZ_LIST=m CONFIG_VZ_GENCALLS=y CONFIG_VE_NETDEV=m +CONFIG_VE_NETDEV_ACCOUNTING=m CONFIG_VE_ETHDEV=m CONFIG_VZ_DEV=m CONFIG_VE_IPTABLES=y diff --git a/include/linux/vznetstat.h b/include/linux/vznetstat.h index 2a6d1ae..b6627cc 100644 --- a/include/linux/vznetstat.h +++ b/include/linux/vznetstat.h @@ -47,18 +47,17 @@ static inline int venet_acct_skb_size(struct sk_buff *skb) return skb->data_len + (skb->tail - skb->network_header); } +struct ve_addr_struct; + +#if IS_ENABLED(CONFIG_VE_NETDEV_ACCOUNTING) +struct venet_stat *venet_acct_find_stat(envid_t veid); +struct venet_stat *venet_acct_find_create_stat(envid_t veid); static inline void venet_acct_get_stat(struct venet_stat *stat) { atomic_inc(&stat->users); } void venet_acct_put_stat(struct venet_stat *); -struct venet_stat *venet_acct_find_create_stat(envid_t veid); -struct venet_stat *venet_acct_find_stat(envid_t veid); -int init_venet_acct_ip_stat(struct ve_struct *env, struct venet_stat *stat); -void fini_venet_acct_ip_stat(struct ve_struct *env); - -struct ve_addr_struct; void venet_acct_classify_add_incoming(struct venet_stat *, struct sk_buff *skb); void venet_acct_classify_add_outgoing(struct venet_stat *, struct sk_buff *skb); void venet_acct_classify_sub_outgoing(struct venet_stat *, struct sk_buff *skb); @@ -69,4 +68,33 @@ void venet_acct_classify_add_outgoing_plain(struct venet_stat *stat, struct ve_addr_struct *dst_addr, int data_size); void ip_vznetstat_touch(void); +int init_venet_acct_ip_stat(struct ve_struct *env, struct venet_stat *stat); +void fini_venet_acct_ip_stat(struct ve_struct *env); +#else /* !CONFIG_VE_NETDEV_ACCOUNTING */ +static inline void venet_acct_get_stat(struct venet_stat *stat) { } +static inline void venet_acct_put_stat(struct venet_stat *stat) { } + +static inline void venet_acct_classify_add_incoming(struct venet_stat *stat, + struct sk_buff *skb) {} +static inline void venet_acct_classify_add_outgoing(struct venet_stat *stat, + struct sk_buff *skb) {} +static inline void venet_acct_classify_sub_outgoing(struct venet_stat *stat, + struct sk_buff *skb) {} + +static inline void venet_acct_classify_add_incoming_plain(struct venet_stat *stat, + struct ve_addr_struct *src_addr, int data_size) {} +static inline void venet_acct_classify_add_outgoing_plain(struct venet_stat *stat, + struct ve_addr_struct *dst_addr, int data_size) {} +static inline void ip_vznetstat_touch(void) {} + +static inline int init_venet_acct_ip_stat(struct ve_struct *env, struct venet_stat *stat) +{ + return 0; +} +static void fini_venet_acct_ip_stat(struct ve_struct *env) +{ +} + +#endif /* CONFIG_VE_NETDEV_ACCOUNTING */ + #endif diff --git a/kernel/Kconfig.openvz b/kernel/Kconfig.openvz index 3cd83e3..3eb2fd2 100644 --- a/kernel/Kconfig.openvz +++ b/kernel/Kconfig.openvz @@ -66,6 +66,23 @@ config VE_IPTABLES help This option controls whether to build VE netfiltering code. +config VZ_LIST + tristate "VE listing/statistics user ioctl interface" + depends on VE + default m + help + This options controls building of vzlist module. + This module provides ioctl interfaces for fetching VE ids, ip addresses + and pids of running processes. + +config VE_NETDEV_ACCOUNTING + tristate "VE networking accounting" + depends on VE_NETDEV + default m + help + This option allows traffic accounting on Virtual Networking device and + on real devices moved to a Virtual Environment + config VZ_WDOG tristate "VE watchdog module" depends on VE_CALLS diff --git a/kernel/ve/Makefile b/kernel/ve/Makefile index 044a337..1037943 100644 --- a/kernel/ve/Makefile +++ b/kernel/ve/Makefile @@ -13,12 +13,10 @@ vzmon-objs = vecalls.o obj-$(CONFIG_VZ_DEV) += vzdev.o obj-$(CONFIG_VZ_EVENT) += vzevent.o -obj-m += vznetstat/vznetstat.o -obj-m += vznetstat/ip_vznetstat.o -obj-m += vznetstat/ip6_vznetstat.o +obj-$(CONFIG_VE_NETDEV_ACCOUNTING) += vznetstat/vznetstat.o vznetstat/ip_vznetstat.o vznetstat/ip6_vznetstat.o -obj-m += vzlist.o -obj-m += vzstat.o +obj-$(CONFIG_VZ_LIST) += vzlist.o +obj-$(CONFIG_VE_CALLS) += vzstat.o obj-m += dummy/ip6_vzprivnet.o obj-m += dummy/ip_vzprivnet.o _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel