ip_queue
struct ip_queue *ipq;
while ((ipq = STAILQ_FIRST(&ipr->ip_queue)) != NULL) {
STAILQ_REMOVE_HEAD(&ipr->ip_queue, ipq_next);
struct ip_queue *ipq, *p;
STAILQ_FOREACH(p, &ipr->ip_queue, ipq_next) {
struct ip_queue *next = STAILQ_NEXT(p, ipq_next);
STAILQ_INSERT_AFTER(&ipr->ip_queue, p, ipq, ipq_next);
STAILQ_INSERT_AFTER(&ipr->ip_queue, p, ipq, ipq_next);
STAILQ_INSERT_HEAD(&ipr->ip_queue, ipq, ipq_next);
struct ip_queue *ipq, *last;
STAILQ_INIT(&ipr->ip_queue);
STAILQ_FOREACH(ipq, &ipr->ip_queue, ipq_next) {
ipq = STAILQ_FIRST(&ipr->ip_queue);
STAILQ_FOREACH(ipq, &ipr->ip_queue, ipq_next) {
typedef STAILQ_HEAD(ipqueue, ip_queue) ip_queue_t;
STAILQ_ENTRY(ip_queue) ipq_next;
ip_queue_t ip_queue;