diff --git a/include/linux/ipa.h b/include/linux/ipa.h index fa528096b133..a0c4d9387e4f 100644 --- a/include/linux/ipa.h +++ b/include/linux/ipa.h @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2012-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef _IPA_H_ @@ -490,6 +491,17 @@ struct ipa_ep_cfg_seq { int seq_type; }; +/** + * struct ipa_ep_cfg_ucp - uCP config register + * @command: Command ID at uCP, that the packets should hit + * + * @enable: 0 - Disabled + * 1- Enabled + */ +struct ipa_ep_cfg_ucp { + u16 command; + u32 enable; +}; /** * struct ipa_ep_cfg_ulso - ULSO configurations * @ipid_min_max_idx: A value in the range [0, 2]. Determines the registers diff --git a/include/uapi/linux/msm_ipa.h b/include/uapi/linux/msm_ipa.h index 3e258d6293ce..dcd4980ea987 100644 --- a/include/uapi/linux/msm_ipa.h +++ b/include/uapi/linux/msm_ipa.h @@ -2,7 +2,7 @@ /* * Copyright (c) 2012-2021, The Linux Foundation. All rights reserved. * - * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef _UAPI_MSM_IPA_H_ @@ -151,6 +151,7 @@ #define IPA_IOCTL_QUERY_CACHED_DRIVER_MSG 94 #define IPA_IOCTL_SET_EXT_ROUTER_MODE 95 #define IPA_IOCTL_ADD_DEL_DSCP_PCP_MAPPING 96 +#define IPA_IOCTL_SEND_VLAN_MUXID_MAPPING 97 /** * max size of the header to be inserted */ @@ -1755,6 +1756,27 @@ struct IpaDscpVlanPcpMap_t { uint16_t vlan_s[IPA_EoGRE_MAX_VLAN * IPA_GRE_MAX_S_VLAN]; } __packed; + +#define MAX_VLAN_CONFIGURE 16 +enum pkt_path { + SW_PATH = 0, + HW_PATH_OUTSIDE_TUNNEL = 1, + HW_PATH_INSIDE_TUNNEL = 2 +}; + +/* VLANID - Action - Tunnel_ID - MUX_ID */ +struct singletag_mux_map_entry { + uint16_t vlan_id; + uint8_t mux_id; + uint8_t pkt_path; + uint32_t tunnel_id; +}; + +struct ipa_ioc_mux_mapping_table { + struct singletag_mux_map_entry map_entries[MAX_VLAN_CONFIGURE]; +}; + + /** * struct ipa_exception * @@ -4077,6 +4099,11 @@ struct ipa_ioc_dscp_pcp_map_info { IPA_IOCTL_ADD_DEL_DSCP_PCP_MAPPING, \ struct ipa_ioc_dscp_pcp_map_info) +#define IPA_IOC_SEND_VLAN_MUXID_MAPPING _IOWR(IPA_IOC_MAGIC, \ + IPA_IOCTL_SEND_VLAN_MUXID_MAPPING, \ + struct ipa_ioc_mux_mapping_table) + + /* * unique magic number of the Tethering bridge ioctls */