}
        }
 
+       if (options->cipher_algo == RTE_CRYPTO_CIPHER_AES_GCM ||
+                       options->cipher_algo == RTE_CRYPTO_CIPHER_AES_CCM ||
+                       options->auth_algo == RTE_CRYPTO_AUTH_AES_GCM ||
+                       options->auth_algo == RTE_CRYPTO_AUTH_AES_CCM ||
+                       options->auth_algo == RTE_CRYPTO_AUTH_AES_GMAC) {
+               if (options->op_type != CPERF_AEAD) {
+                       RTE_LOG(ERR, USER1, "Use --optype aead\n");
+                       return -EINVAL;
+               }
+       }
+
        return 0;
 }
 
 
 
                if (opts->op_type == CPERF_AUTH_ONLY ||
                                opts->op_type == CPERF_CIPHER_THEN_AUTH ||
-                               opts->op_type == CPERF_AUTH_THEN_CIPHER)  {
+                               opts->op_type == CPERF_AUTH_THEN_CIPHER ||
+                               opts->op_type == CPERF_AEAD)  {
 
                        cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
                        cap_idx.algo.auth = opts->auth_algo;
 
                if (opts->op_type == CPERF_CIPHER_ONLY ||
                                opts->op_type == CPERF_CIPHER_THEN_AUTH ||
-                               opts->op_type == CPERF_AUTH_THEN_CIPHER) {
+                               opts->op_type == CPERF_AUTH_THEN_CIPHER ||
+                               opts->op_type == CPERF_AEAD) {
 
                        cap_idx.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
                        cap_idx.algo.cipher = opts->cipher_algo;