IPV6_FLOWLABEL_LEN
#define IPV6_TRAFFIC_CLASS(ip6) ((ntohl((ip6)->ip6_flow) >> IPV6_FLOWLABEL_LEN) & 0xff)
#define IPV6_DSCP(ip6) ((ntohl((ip6)->ip6_flow) >> IPV6_FLOWLABEL_LEN) & 0xfc)
#define IPV6_ECN(ip6) ((ntohl((ip6)->ip6_flow) >> IPV6_FLOWLABEL_LEN) & 0x03)
ip6->ip6_flow |= htonl(V_carp_dscp << (IPV6_FLOWLABEL_LEN +
ip6->ip6_flow |= htonl(V_carp_dscp << (IPV6_FLOWLABEL_LEN +
inner8 = (ntohl(*inner) >> IPV6_FLOWLABEL_LEN) & 0xff;
*outer &= ~htonl(0xff << IPV6_FLOWLABEL_LEN);
*outer |= htonl((uint32_t)outer8 << IPV6_FLOWLABEL_LEN);
outer8 = (ntohl(*outer) >> IPV6_FLOWLABEL_LEN) & 0xff;
inner8 = oinner8 = (ntohl(*inner) >> IPV6_FLOWLABEL_LEN) & 0xff;
*inner &= ~htonl(0xff << IPV6_FLOWLABEL_LEN);
*inner |= htonl((uint32_t)inner8 << IPV6_FLOWLABEL_LEN);
ip6->ip6_flow &= ~htonl(IPTOS_ECN_MASK << IPV6_FLOWLABEL_LEN);
ip6->ip6_flow |= htonl(ect << IPV6_FLOWLABEL_LEN);
ip6->ip6_flow = htonl(ect << IPV6_FLOWLABEL_LEN);
ip6->ip6_flow |= htonl(sc->sc_ip_tos << IPV6_FLOWLABEL_LEN);