+static int
+cpt_pdcp_key_type_set(struct roc_se_zuc_snow3g_ctx *zs_ctx, uint16_t key_len)
+{
+ roc_se_aes_type key_type = 0;
+
+ if (roc_model_is_cn9k()) {
+ if (key_len != 16) {
+ plt_err("Only key len 16 is supported on cn9k");
+ return -ENOTSUP;
+ }
+ }
+
+ switch (key_len) {
+ case 16:
+ key_type = ROC_SE_AES_128_BIT;
+ break;
+ case 32:
+ key_type = ROC_SE_AES_256_BIT;
+ break;
+ default:
+ plt_err("Invalid AES key len");
+ return -ENOTSUP;
+ }
+ zs_ctx->zuc.otk_ctx.w0.s.key_len = key_type;
+ return 0;
+}
+
+static int
+cpt_pdcp_mac_len_set(struct roc_se_zuc_snow3g_ctx *zs_ctx, uint16_t mac_len)
+{
+ roc_se_pdcp_mac_len_type mac_type = 0;
+
+ if (roc_model_is_cn9k()) {
+ if (mac_len != 4) {
+ plt_err("Only mac len 4 is supported on cn9k");
+ return -ENOTSUP;
+ }
+ }
+
+ switch (mac_len) {
+ case 4:
+ mac_type = ROC_SE_PDCP_MAC_LEN_32_BIT;
+ break;
+ case 8:
+ mac_type = ROC_SE_PDCP_MAC_LEN_64_BIT;
+ break;
+ case 16:
+ mac_type = ROC_SE_PDCP_MAC_LEN_128_BIT;
+ break;
+ default:
+ plt_err("Invalid ZUC MAC len");
+ return -ENOTSUP;
+ }
+ zs_ctx->zuc.otk_ctx.w0.s.mac_len = mac_type;
+ return 0;
+}
+