add DS-Lite offloading
This commit is contained in:
		| @@ -211,6 +211,22 @@ ECM_MAKE_OPTS+=ECM_INTERFACE_OVS_BRIDGE_ENABLE=y \ | ||||
| EXTRA_CFLAGS+= -I$(STAGING_DIR)/usr/include/qca-ovsmgr | ||||
| endif | ||||
|  | ||||
| ifneq ($(CONFIG_PACKAGE_kmod-ipsec),) | ||||
| ECM_MAKE_OPTS+=ECM_INTERFACE_IPSEC_ENABLE=y | ||||
| endif | ||||
|  | ||||
| ifneq ($(CONFIG_PACKAGE_kmod-pppol2tp),) | ||||
| ECM_MAKE_OPTS+=ECM_INTERFACE_L2TPV2_ENABLE=y | ||||
| endif | ||||
|  | ||||
| ifneq ($(CONFIG_PACKAGE_kmod-sit),) | ||||
| ECM_MAKE_OPTS+=ECM_INTERFACE_SIT_ENABLE=y | ||||
| endif | ||||
|  | ||||
| ifneq ($(CONFIG_PACKAGE_kmod-ip6-tunnel),) | ||||
| ECM_MAKE_OPTS+=ECM_INTERFACE_TUNIPIP6_ENABLE=y | ||||
| endif | ||||
|  | ||||
| # Keeping default as ipq806x for branches that does not have subtarget framework | ||||
| ifeq ($(CONFIG_TARGET_ipq),y) | ||||
| subtarget:=$(SUBTARGET) | ||||
|   | ||||
| @@ -0,0 +1,77 @@ | ||||
| --- a/include/net/ip6_tunnel.h | ||||
| +++ b/include/net/ip6_tunnel.h | ||||
| @@ -36,6 +36,7 @@ struct __ip6_tnl_parm { | ||||
|  	__u8 proto;		/* tunnel protocol */ | ||||
|  	__u8 encap_limit;	/* encapsulation limit for tunnel */ | ||||
|  	__u8 hop_limit;		/* hop limit for tunnel */ | ||||
| +	__u8 draft03;		/* FMR using draft03 of map-e - QCA NSS Clients Support */ | ||||
|  	bool collect_md; | ||||
|  	__be32 flowinfo;	/* traffic class and flowlabel for tunnel */ | ||||
|  	__u32 flags;		/* tunnel flags */ | ||||
| --- a/include/net/ip_tunnels.h | ||||
| +++ b/include/net/ip_tunnels.h | ||||
| @@ -525,4 +525,9 @@ static inline void ip_tunnel_info_opts_s | ||||
|   | ||||
|  #endif /* CONFIG_INET */ | ||||
|   | ||||
| +/* QCA NSS Clients Support - Start */ | ||||
| +void ipip6_update_offload_stats(struct net_device *dev, void *ptr); | ||||
| +void ip6_update_offload_stats(struct net_device *dev, void *ptr); | ||||
| +/* QCA NSS Clients Support - End */ | ||||
| + | ||||
|  #endif /* __NET_IP_TUNNELS_H */ | ||||
| --- a/net/ipv6/ip6_tunnel.c | ||||
| +++ b/net/ipv6/ip6_tunnel.c | ||||
| @@ -2392,6 +2392,26 @@ nla_put_failure: | ||||
|  	return -EMSGSIZE; | ||||
|  } | ||||
|   | ||||
| +/* QCA NSS Client Support - Start */ | ||||
| +/* | ||||
| + * Update offload stats | ||||
| + */ | ||||
| +void ip6_update_offload_stats(struct net_device *dev, void *ptr) | ||||
| +{ | ||||
| +	struct pcpu_sw_netstats *tstats = per_cpu_ptr(dev->tstats, 0); | ||||
| +	const struct pcpu_sw_netstats *offload_stats = | ||||
| +					(struct pcpu_sw_netstats *)ptr; | ||||
| + | ||||
| +	u64_stats_update_begin(&tstats->syncp); | ||||
| +	tstats->tx_packets += offload_stats->tx_packets; | ||||
| +	tstats->tx_bytes   += offload_stats->tx_bytes; | ||||
| +	tstats->rx_packets += offload_stats->rx_packets; | ||||
| +	tstats->rx_bytes   += offload_stats->rx_bytes; | ||||
| +	u64_stats_update_end(&tstats->syncp); | ||||
| +} | ||||
| +EXPORT_SYMBOL(ip6_update_offload_stats); | ||||
| +/* QCA NSS Client Support - End */ | ||||
| + | ||||
|  struct net *ip6_tnl_get_link_net(const struct net_device *dev) | ||||
|  { | ||||
|  	struct ip6_tnl *tunnel = netdev_priv(dev); | ||||
| --- a/net/ipv6/sit.c | ||||
| +++ b/net/ipv6/sit.c | ||||
| @@ -1741,6 +1741,23 @@ nla_put_failure: | ||||
|  	return -EMSGSIZE; | ||||
|  } | ||||
|   | ||||
| +/* QCA NSS Clients Support - Start */ | ||||
| +void ipip6_update_offload_stats(struct net_device *dev, void *ptr) | ||||
| +{ | ||||
| +	struct pcpu_sw_netstats *tstats = per_cpu_ptr(dev->tstats, 0); | ||||
| +	const struct pcpu_sw_netstats *offload_stats = | ||||
| +					(struct pcpu_sw_netstats *)ptr; | ||||
| + | ||||
| +	u64_stats_update_begin(&tstats->syncp); | ||||
| +	tstats->tx_packets += offload_stats->tx_packets; | ||||
| +	tstats->tx_bytes   += offload_stats->tx_bytes; | ||||
| +	tstats->rx_packets += offload_stats->rx_packets; | ||||
| +	tstats->rx_bytes   += offload_stats->rx_bytes; | ||||
| +	u64_stats_update_end(&tstats->syncp); | ||||
| +} | ||||
| +EXPORT_SYMBOL(ipip6_update_offload_stats); | ||||
| +/* QCA NSS Clients Support - End */ | ||||
| + | ||||
|  static const struct nla_policy ipip6_policy[IFLA_IPTUN_MAX + 1] = { | ||||
|  	[IFLA_IPTUN_LINK]		= { .type = NLA_U32 }, | ||||
|  	[IFLA_IPTUN_LOCAL]		= { .type = NLA_U32 }, | ||||
		Reference in New Issue
	
	Block a user
	 tishipp
					tishipp