void configure_pktio_default_cos(void) { int retval; odp_queue_param_t qparam; char cosname[ODP_COS_NAME_LEN]; char queuename[ODP_QUEUE_NAME_LEN]; sprintf(cosname, "DefaultCoS"); cos_list[CLS_DEFAULT] = odp_cos_create(cosname); CU_ASSERT_FATAL(cos_list[CLS_DEFAULT] != ODP_COS_INVALID); qparam.sched.prio = ODP_SCHED_PRIO_DEFAULT; qparam.sched.sync = ODP_SCHED_SYNC_NONE; qparam.sched.group = ODP_SCHED_GROUP_ALL; sprintf(queuename, "%s", "DefaultQueue"); queue_list[CLS_DEFAULT] = odp_queue_create(queuename, ODP_QUEUE_TYPE_SCHED, &qparam); CU_ASSERT_FATAL(queue_list[CLS_DEFAULT] != ODP_QUEUE_INVALID); retval = odp_cos_set_queue(cos_list[CLS_DEFAULT], queue_list[CLS_DEFAULT]); CU_ASSERT(retval == 0); retval = odp_pktio_default_cos_set(pktio_loop, cos_list[CLS_DEFAULT]); CU_ASSERT(retval == 0); }
int build_classifier(int if_count, char **if_names) { odp_pktio_t pktio; odp_cos_t cos_def; odp_cos_t cos_udp; odp_pmr_t pmr_udp; char name[80]; int i; cos_udp = build_cos_w_queue("cos_udp"); if (cos_udp == ODP_COS_INVALID) { OFP_ERR("Failed to create UDP COS"); return -1; } pmr_udp = build_udp_prm(); if (pmr_udp == ODP_PMR_INVAL) { OFP_ERR("Failed to create UDP PRM"); return -1; } for (i = 0; i < if_count; i++) { pktio = odp_pktio_lookup(if_names[i]); if (pktio == ODP_PKTIO_INVALID) { OFP_ERR("Failed to get pktio for interface %s\n", if_names[i]); return -1; } sprintf(name, "cos_default_%s", if_names[i]); cos_def = build_cos_set_queue(name, ofp_pktio_spq_get(pktio)); if (cos_def == ODP_COS_INVALID) { OFP_ERR("Failed to create default COS " "for interface %s\n", if_names[i]); return -1; } if (odp_pktio_default_cos_set(pktio, cos_def) < 0) { OFP_ERR("Failed to set default COS on interface %s\n", if_names[i]); return -1; } if (odp_pktio_error_cos_set(pktio, cos_def) < 0) { OFP_ERR("Failed to set error COS on interface %s\n", if_names[i]); return -1; } if (odp_pktio_pmr_cos(pmr_udp, pktio, cos_udp) < 0) { OFP_ERR("Failed to set UDP PRM on interface %s\n", if_names[i]); return 1; } } return 0; }