q6
q = q0+y*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*q6)))));
uint64_t q0, q1, q2, q3, q4, q5, q6, q7;
q6 = q[6];
r6 = (q6 >> 16) | (q6 << 48);
q[0] = q5 ^ q6 ^ q7 ^ r0 ^ r5 ^ r7 ^ rotr32(q0 ^ q5 ^ q6 ^ r0 ^ r5);
q[2] = q0 ^ q1 ^ q6 ^ r1 ^ r2 ^ r6 ^ r7 ^ rotr32(q0 ^ q2 ^ q6 ^ r2 ^ r6 ^ r7);
q[3] = q0 ^ q1 ^ q2 ^ q5 ^ q6 ^ r0 ^ r2 ^ r3 ^ r5 ^ rotr32(q0 ^ q1 ^ q3 ^ q5 ^ q6 ^ q7 ^ r0 ^ r3 ^ r5 ^ r7);
q[5] = q2 ^ q3 ^ q4 ^ q6 ^ r2 ^ r4 ^ r5 ^ r6 ^ r7 ^ rotr32(q2 ^ q3 ^ q5 ^ q6 ^ r2 ^ r5 ^ r6 ^ r7);
q[6] = q3 ^ q4 ^ q5 ^ q7 ^ r3 ^ r5 ^ r6 ^ r7 ^ rotr32(q3 ^ q4 ^ q6 ^ q7 ^ r3 ^ r6 ^ r7);
q[7] = q4 ^ q5 ^ q6 ^ r4 ^ r6 ^ r7 ^ rotr32(q4 ^ q5 ^ q7 ^ r4 ^ r7);
uint64_t q0, q1, q2, q3, q4, q5, q6, q7;
q6 = ~q[6];
q[7] = q1 ^ q4 ^ q6;
q[4] = q6 ^ q1 ^ q3;
q[1] = q3 ^ q6 ^ q0;
q6 = ~q[6];
q[7] = q1 ^ q4 ^ q6;
q[4] = q6 ^ q1 ^ q3;
q[1] = q3 ^ q6 ^ q0;
q[6] = q5 ^ r5 ^ r6 ^ rotr32(q6 ^ r6);
q[7] = q6 ^ r6 ^ r7 ^ rotr32(q7 ^ r7);
uint64_t q0, q1, q2, q3, q4, q5, q6, q7;
q6 = q[6];
r6 = (q6 >> 16) | (q6 << 48);
uint32_t q0, q1, q2, q3, q4, q5, q6, q7;
q6 = q[6];
r6 = (q6 >> 8) | (q6 << 24);
q[0] = q5 ^ q6 ^ q7 ^ r0 ^ r5 ^ r7 ^ rotr16(q0 ^ q5 ^ q6 ^ r0 ^ r5);
q[2] = q0 ^ q1 ^ q6 ^ r1 ^ r2 ^ r6 ^ r7 ^ rotr16(q0 ^ q2 ^ q6 ^ r2 ^ r6 ^ r7);
q[3] = q0 ^ q1 ^ q2 ^ q5 ^ q6 ^ r0 ^ r2 ^ r3 ^ r5 ^ rotr16(q0 ^ q1 ^ q3 ^ q5 ^ q6 ^ q7 ^ r0 ^ r3 ^ r5 ^ r7);
q[5] = q2 ^ q3 ^ q4 ^ q6 ^ r2 ^ r4 ^ r5 ^ r6 ^ r7 ^ rotr16(q2 ^ q3 ^ q5 ^ q6 ^ r2 ^ r5 ^ r6 ^ r7);
q[6] = q3 ^ q4 ^ q5 ^ q7 ^ r3 ^ r5 ^ r6 ^ r7 ^ rotr16(q3 ^ q4 ^ q6 ^ q7 ^ r3 ^ r6 ^ r7);
q[7] = q4 ^ q5 ^ q6 ^ r4 ^ r6 ^ r7 ^ rotr16(q4 ^ q5 ^ q7 ^ r4 ^ r7);
uint32_t q0, q1, q2, q3, q4, q5, q6, q7;
q6 = ~q[6];
q[7] = q1 ^ q4 ^ q6;
q[4] = q6 ^ q1 ^ q3;
q[1] = q3 ^ q6 ^ q0;
q6 = ~q[6];
q[7] = q1 ^ q4 ^ q6;
q[4] = q6 ^ q1 ^ q3;
q[1] = q3 ^ q6 ^ q0;
uint32_t q0, q1, q2, q3, q4, q5, q6, q7;
q6 = q[6];
r6 = (q6 >> 8) | (q6 << 24);
q[6] = q5 ^ r5 ^ r6 ^ rotr16(q6 ^ r6);
q[7] = q6 ^ r6 ^ r7 ^ rotr16(q7 ^ r7);
__m128i q0, q1, q2, q3, q4, q5, q6, q7;
q6 = q[6];
r6 = _mm_srli_epi32(q6, 8) | _mm_slli_epi32(q6, 24);
q[0] = q5 ^ q6 ^ q7 ^ r0 ^ r5 ^ r7 ^ rotr16(q0 ^ q5 ^ q6 ^ r0 ^ r5);
q[2] = q0 ^ q1 ^ q6 ^ r1 ^ r2 ^ r6 ^ r7 ^ rotr16(q0 ^ q2 ^ q6 ^ r2 ^ r6 ^ r7);
q[3] = q0 ^ q1 ^ q2 ^ q5 ^ q6 ^ r0 ^ r2 ^ r3 ^ r5 ^ rotr16(q0 ^ q1 ^ q3 ^ q5 ^ q6 ^ q7 ^ r0 ^ r3 ^ r5 ^ r7);
q[5] = q2 ^ q3 ^ q4 ^ q6 ^ r2 ^ r4 ^ r5 ^ r6 ^ r7 ^ rotr16(q2 ^ q3 ^ q5 ^ q6 ^ r2 ^ r5 ^ r6 ^ r7);
q[6] = q3 ^ q4 ^ q5 ^ q7 ^ r3 ^ r5 ^ r6 ^ r7 ^ rotr16(q3 ^ q4 ^ q6 ^ q7 ^ r3 ^ r6 ^ r7);
q[7] = q4 ^ q5 ^ q6 ^ r4 ^ r6 ^ r7 ^ rotr16(q4 ^ q5 ^ q7 ^ r4 ^ r7);
__m128i q0, q1, q2, q3, q4, q5, q6, q7;
q6 = ~q[6];
q[7] = q1 ^ q4 ^ q6;
q[4] = q6 ^ q1 ^ q3;
q[1] = q3 ^ q6 ^ q0;
q6 = ~q[6];
q[7] = q1 ^ q4 ^ q6;
q[4] = q6 ^ q1 ^ q3;
q[1] = q3 ^ q6 ^ q0;
r6 = _mm_srli_epi32(q6, 8) | _mm_slli_epi32(q6, 24);
q[6] = q5 ^ r5 ^ r6 ^ rotr16(q6 ^ r6);
q[7] = q6 ^ r6 ^ r7 ^ rotr16(q7 ^ r7);
__m128i q0, q1, q2, q3, q4, q5, q6, q7;
q6 = q[6];
frag6_dropfrag(struct ip6q *q6)
frag6_remque(q6);
frag6_nfrags -= q6->ip6q_nfrag;
kmem_intr_free(q6, sizeof(*q6));
struct ip6q *q6;
for (q6 = ip6q.ip6q_next; q6 != &ip6q; q6 = q6->ip6q_next)
if (ip6f->ip6f_ident == q6->ip6q_ident &&
IN6_ARE_ADDR_EQUAL(&ip6->ip6_src, &q6->ip6q_src) &&
IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst, &q6->ip6q_dst))
if (q6 != &ip6q) {
if (q6->ip6q_ipsec != ipsecflags) {
if (q6 == &ip6q) {
q6 = kmem_intr_zalloc(sizeof(struct ip6q), KM_NOSLEEP);
if (q6 == NULL) {
frag6_insque(q6, &ip6q);
q6->ip6q_down = q6->ip6q_up = (struct ip6asfrag *)q6;
q6->ip6q_ident = ip6f->ip6f_ident;
q6->ip6q_ttl = IPV6_FRAGTTL;
q6->ip6q_src = ip6->ip6_src;
q6->ip6q_dst = ip6->ip6_dst;
q6->ip6q_unfrglen = -1; /* The 1st fragment has not arrived. */
q6->ip6q_nfrag = 0;
q6->ip6q_ipsec = ipsecflags;
q6->ip6q_unfrglen = offset - sizeof(struct ip6_hdr) -
q6->ip6q_nxt = ip6f->ip6f_nxt;
if (q6->ip6q_unfrglen >= 0) {
if (q6->ip6q_unfrglen + fragoff + frgpartlen > IPV6_MAXPACKET) {
for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6;
if (q6->ip6q_unfrglen + af6->ip6af_off + af6->ip6af_frglen >
ip6err->ip6_src = q6->ip6q_src;
ip6err->ip6_dst = q6->ip6q_dst;
af6 = (struct ip6asfrag *)q6;
for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6;
if (af6->ip6af_up != (struct ip6asfrag *)q6) {
if (af6 != (struct ip6asfrag *)q6) {
q6->ip6q_nfrag++;
for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6;
ip6af = q6->ip6q_down;
while (af6 != (struct ip6asfrag *)q6) {
frag6_dropfrag(q6);
ip6->ip6_src = q6->ip6q_src;
ip6->ip6_dst = q6->ip6q_dst;
nxt = q6->ip6q_nxt;
frag6_dropfrag(q6);
frag6_dropfrag(q6);
frag6_freef(struct ip6q *q6)
for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6;
ip6->ip6_src = q6->ip6q_src;
ip6->ip6_dst = q6->ip6q_dst;
frag6_dropfrag(q6);
struct ip6q *q6;
q6 = ip6q.ip6q_next;
if (q6) {
while (q6 != &ip6q) {
--q6->ip6q_ttl;
q6 = q6->ip6q_next;
if (q6->ip6q_prev->ip6q_ttl == 0) {
frag6_freef(q6->ip6q_prev);