return testapp_xdp_metadata_copy(test);
 }
 
+static int testapp_hw_sw_min_ring_size(struct test_spec *test)
+{
+       int ret;
+
+       test->set_ring = true;
+       test->total_steps = 2;
+       test->ifobj_tx->ring.tx_pending = DEFAULT_BATCH_SIZE;
+       test->ifobj_tx->ring.rx_pending = DEFAULT_BATCH_SIZE * 2;
+       test->ifobj_tx->xsk->batch_size = 1;
+       test->ifobj_rx->xsk->batch_size = 1;
+       ret = testapp_validate_traffic(test);
+       if (ret)
+               return ret;
+
+       /* Set batch size to hw_ring_size - 1 */
+       test->ifobj_tx->xsk->batch_size = DEFAULT_BATCH_SIZE - 1;
+       test->ifobj_rx->xsk->batch_size = DEFAULT_BATCH_SIZE - 1;
+       return testapp_validate_traffic(test);
+}
+
 static void run_pkt_test(struct test_spec *test)
 {
        int ret;
        {.name = "ALIGNED_INV_DESC_MULTI_BUFF", .test_func = testapp_aligned_inv_desc_mb},
        {.name = "UNALIGNED_INV_DESC_MULTI_BUFF", .test_func = testapp_unaligned_inv_desc_mb},
        {.name = "TOO_MANY_FRAGS", .test_func = testapp_too_many_frags},
+       {.name = "HW_SW_MIN_RING_SIZE", .test_func = testapp_hw_sw_min_ring_size},
        };
 
 static void print_tests(void)