/* If the reservation cannot be found and the DRP IE is from a peer attempting to establish a new reservation, create a new reservation and add it to the list.  */
struct uwb_rsv* uwb_rsv_find(struct uwb_rc *rc, struct uwb_dev *src, struct uwb_ie_drp *drp_ie)
/* If the reservation cannot be found and the DRP IE is from a peer attempting to establish a new reservation, create a new reservation and add it to the list.  */
struct uwb_rsv* uwb_rsv_find(struct uwb_rc *rc, struct uwb_dev *src, struct uwb_ie_drp *drp_ie)
{
	struct uwb_rsv *rsv;
	list_for_each_entry(rsv, &rc->reservations, rc_node) {
		if (uwb_rsv_match(rsv, src, drp_ie))
			return rsv;
	}
	if (uwb_ie_drp_owner(drp_ie))
		return uwb_rsv_new_target(rc, src, drp_ie);
	return NULL;
}