ip6q
static void frag6_remque(struct ip6q *);
static void frag6_freef(struct ip6q *);
static struct ip6q ip6q; /* ip6 reassembly queue */
ip6q.ip6q_next = ip6q.ip6q_prev = &ip6q;
frag6_dropfrag(struct ip6q *q6)
struct ip6q *q6;
for (q6 = ip6q.ip6q_next; q6 != &ip6q; q6 = q6->ip6q_next)
if (q6 != &ip6q) {
if (q6 == &ip6q) {
q6 = kmem_intr_zalloc(sizeof(struct ip6q), KM_NOSLEEP);
frag6_insque(q6, &ip6q);
frag6_freef(struct ip6q *q6)
frag6_insque(struct ip6q *newq, struct ip6q *oldq)
frag6_remque(struct ip6q *p6)
struct ip6q *q6;
q6 = ip6q.ip6q_next;
while (q6 != &ip6q) {
ip6q.ip6q_prev) {
frag6_freef(ip6q.ip6q_prev);
while (ip6q.ip6q_next != &ip6q) {
frag6_freef(ip6q.ip6q_next);
struct ip6q *ip6q_next;
struct ip6q *ip6q_prev;
static void frag6_insque(struct ip6q *, struct ip6q *);