mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
msm: ipa: add support for PMIPv6
Make changes to add new proc ctx and uCP commands to support Proxy Mobile IPv6. Change-Id: I4c0995ffe6969c3183e6b16dd6dbd1203d7bec43 Signed-off-by: Krishna Nagaraja <quic_krisnag@quicinc.com>
This commit is contained in:
parent
daa78a4179
commit
1a1dccc448
1 changed files with 52 additions and 1 deletions
|
|
@ -1529,6 +1529,8 @@ enum ipa_hdr_l2_type {
|
|||
* IPA_HDR_PROC_EoGRE_HEADER_ADD: Add IPV[46] and GRE header
|
||||
* IPA_HDR_PROC_EoGRE_HEADER_REMOVE: Remove IPV[46] and GRE header
|
||||
* IPA_HDR_PROC_WWAN_TO_ETHII_EX: To update PCP value for E2E traffic.
|
||||
* IPA_HDR_PROC_GRE_HEADER_ADD, Add IPV[46] and IP-GRE header
|
||||
* IPA_HDR_PROC_GRE_HEADER_REMOVE, Remove IPV[46] and IP-GRE header
|
||||
*/
|
||||
enum ipa_hdr_proc_type {
|
||||
IPA_HDR_PROC_NONE,
|
||||
|
|
@ -1545,8 +1547,10 @@ enum ipa_hdr_proc_type {
|
|||
IPA_HDR_PROC_EoGRE_HEADER_ADD,
|
||||
IPA_HDR_PROC_EoGRE_HEADER_REMOVE,
|
||||
IPA_HDR_PROC_WWAN_TO_ETHII_EX,
|
||||
IPA_HDR_PROC_GRE_HEADER_ADD,
|
||||
IPA_HDR_PROC_GRE_HEADER_REMOVE
|
||||
};
|
||||
#define IPA_HDR_PROC_MAX (IPA_HDR_PROC_WWAN_TO_ETHII_EX + 1)
|
||||
#define IPA_HDR_PROC_MAX (IPA_HDR_PROC_GRE_HEADER_REMOVE + 1)
|
||||
|
||||
/**
|
||||
* struct ipa_rt_rule - attributes of a routing rule
|
||||
|
|
@ -1865,6 +1869,52 @@ struct ipa_eogre_hdr_proc_ctx_params {
|
|||
struct ipa_eogre_header_remove_procparams hdr_remove_param;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* struct ipa_gre_header_add_procparams -
|
||||
* @eth_hdr_retained: Specifies if Ethernet header is retained or not
|
||||
* @input_ip_version: Specifies if Input header is IPV4(0) or IPV6(1)
|
||||
* @output_ip_version: Specifies if template header's outer IP is IPV4(0) or IPV6(1)
|
||||
* @second_pass: Specifies if the data should be processed again.
|
||||
* @is_mpls: Specifies if ucp cmd is for legacy EoGRE(0) or MPLSoGRE(1)
|
||||
* @tag_remove_len: Specifies amount to be removed for the tags
|
||||
*/
|
||||
struct ipa_gre_header_add_procparams {
|
||||
uint32_t eth_hdr_retained :1;
|
||||
uint32_t input_ip_version :1;
|
||||
uint32_t output_ip_version :1;
|
||||
uint32_t second_pass :1;
|
||||
uint32_t is_mpls :1;
|
||||
uint32_t tag_remove_len :4;
|
||||
uint32_t reserved :23;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_gre_header_remove_procparams -
|
||||
* @hdr_len_remove: Specifies how much (in bytes) of the header needs
|
||||
* to be removed
|
||||
* @outer_ip_version: Specifies if template header's outer IP is IPV4(0) or IPV6(1)
|
||||
* @is_mpls: Specifies if ucp cmd is for legacy EoGRE(0) or MPLSoGRE(1)
|
||||
* @tag_add_len: Specifies amount to be added for the tags
|
||||
*/
|
||||
struct ipa_gre_header_remove_procparams {
|
||||
uint32_t hdr_len_remove :8; /* 44 bytes for IPV6, 24 for IPV4 */
|
||||
uint32_t outer_ip_version :1;
|
||||
uint32_t is_mpls :1;
|
||||
uint32_t tag_add_len :4;
|
||||
uint32_t reserved :18;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_gre_hdr_proc_ctx_params -
|
||||
* @hdr_add_param: parameters for header add
|
||||
* @hdr_remove_param: parameters for header remove
|
||||
*/
|
||||
struct ipa_gre_hdr_proc_ctx_params {
|
||||
struct ipa_gre_header_add_procparams hdr_add_param;
|
||||
struct ipa_gre_header_remove_procparams hdr_remove_param;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_eth_II_to_eth_II_ex_procparams -
|
||||
* @input_ethhdr_negative_offset: Specifies where the ethernet hdr offset is
|
||||
|
|
@ -1926,6 +1976,7 @@ struct ipa_hdr_proc_ctx_add {
|
|||
struct ipa_eogre_hdr_proc_ctx_params eogre_params;
|
||||
struct ipa_eth_II_to_eth_II_ex_procparams generic_params;
|
||||
struct ipa_wwan_to_eth_II_ex_procparams generic_params_v2;
|
||||
struct ipa_gre_hdr_proc_ctx_params gre_params;
|
||||
};
|
||||
|
||||
#define IPA_L2TP_HDR_PROC_SUPPORT
|
||||
|
|
|
|||
Loading…
Reference in a new issue