Lines Matching refs:trace

65 static bool ioam6_validate_trace_hdr(struct ioam6_trace_hdr *trace)  in ioam6_validate_trace_hdr()  argument
69 if (!trace->type_be32 || !trace->remlen || in ioam6_validate_trace_hdr()
70 trace->remlen > IOAM6_TRACE_DATA_SIZE_MAX / 4 || in ioam6_validate_trace_hdr()
71 trace->type.bit12 | trace->type.bit13 | trace->type.bit14 | in ioam6_validate_trace_hdr()
72 trace->type.bit15 | trace->type.bit16 | trace->type.bit17 | in ioam6_validate_trace_hdr()
73 trace->type.bit18 | trace->type.bit19 | trace->type.bit20 | in ioam6_validate_trace_hdr()
74 trace->type.bit21) in ioam6_validate_trace_hdr()
77 trace->nodelen = 0; in ioam6_validate_trace_hdr()
78 fields = be32_to_cpu(trace->type_be32); in ioam6_validate_trace_hdr()
80 trace->nodelen += hweight32(fields & IOAM6_MASK_SHORT_FIELDS) in ioam6_validate_trace_hdr()
82 trace->nodelen += hweight32(fields & IOAM6_MASK_WIDE_FIELDS) in ioam6_validate_trace_hdr()
95 struct ioam6_trace_hdr *trace; in ioam6_build_state() local
124 trace = nla_data(tb[IOAM6_IPTUNNEL_TRACE]); in ioam6_build_state()
125 if (!ioam6_validate_trace_hdr(trace)) { in ioam6_build_state()
131 len_aligned = ALIGN(trace->remlen * 4, 8); in ioam6_build_state()
152 tuninfo->ioamh.opt_len = sizeof(tuninfo->ioamh) - 2 + sizeof(*trace) in ioam6_build_state()
153 + trace->remlen * 4; in ioam6_build_state()
155 memcpy(&tuninfo->traceh, trace, sizeof(*trace)); in ioam6_build_state()
157 if (len_aligned - trace->remlen * 4) { in ioam6_build_state()
158 tuninfo->traceh.data[trace->remlen * 4] = IPV6_TLV_PADN; in ioam6_build_state()
159 tuninfo->traceh.data[trace->remlen * 4 + 1] = 2; in ioam6_build_state()
172 struct ioam6_trace_hdr *trace; in ioam6_do_fill() local
175 trace = (struct ioam6_trace_hdr *)(skb_transport_header(skb) in ioam6_do_fill()
179 ns = ioam6_namespace(net, trace->namespace_id); in ioam6_do_fill()
181 ioam6_fill_trace_data(skb, ns, trace, false); in ioam6_do_fill()