/kernel/linux/linux-5.10/tools/testing/selftests/net/ |
H A D | ipv6_flowlabel.c | 38 static void do_send(int fd, bool with_flowlabel, uint32_t flowlabel) in do_send() argument 40 char control[CMSG_SPACE(sizeof(flowlabel))] = {0}; in do_send() 55 cm->cmsg_len = CMSG_LEN(sizeof(flowlabel)); in do_send() 58 *(uint32_t *)CMSG_DATA(cm) = htonl(flowlabel); in do_send() 69 fprintf(stderr, "sent with label %u\n", flowlabel); in do_send() 81 uint32_t flowlabel; in do_recv() local 114 flowlabel = ntohl(*(uint32_t *)CMSG_DATA(cm)); in do_recv() 115 fprintf(stderr, "recv with label %u\n", flowlabel); in do_recv() 117 if (expect != FLOWLABEL_WILDCARD && expect != flowlabel) in do_recv() 118 fprintf(stderr, "recv: incorrect flowlabel in do_recv() [all...] |
/kernel/linux/linux-6.6/tools/testing/selftests/net/ |
H A D | ipv6_flowlabel.c | 53 static void do_send(int fd, bool with_flowlabel, uint32_t flowlabel) in do_send() argument 55 char control[CMSG_SPACE(sizeof(flowlabel))] = {0}; in do_send() 78 cm->cmsg_len = CMSG_LEN(sizeof(flowlabel)); in do_send() 81 *(uint32_t *)CMSG_DATA(cm) = htonl(flowlabel); in do_send() 92 fprintf(stderr, "sent with label %u\n", flowlabel); in do_send() 104 uint32_t flowlabel; in do_recv() local 140 flowlabel = ntohl(*(uint32_t *)CMSG_DATA(cm)); in do_recv() 141 fprintf(stderr, "recv with label %u\n", flowlabel); in do_recv() 143 if (expect != FLOWLABEL_WILDCARD && expect != flowlabel) { in do_recv() 144 fprintf(stderr, "recv: incorrect flowlabel in do_recv() [all...] |
/kernel/linux/linux-5.10/net/l2tp/ |
H A D | l2tp_ip6.c | 497 struct ip6_flowlabel *flowlabel = NULL; in l2tp_ip6_sendmsg() local 533 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg() 534 if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg() 535 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg() 536 if (IS_ERR(flowlabel)) in l2tp_ip6_sendmsg() 557 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg() 571 fl6_sock_release(flowlabel); in l2tp_ip6_sendmsg() 574 if ((fl6.flowlabel & IPV6_FLOWLABEL_MASK) && !flowlabel) { in l2tp_ip6_sendmsg() [all...] |
/kernel/linux/linux-6.6/net/l2tp/ |
H A D | l2tp_ip6.c | 496 struct ip6_flowlabel *flowlabel = NULL; in l2tp_ip6_sendmsg() local 532 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg() 533 if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg() 534 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg() 535 if (IS_ERR(flowlabel)) in l2tp_ip6_sendmsg() 556 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg() 570 fl6_sock_release(flowlabel); in l2tp_ip6_sendmsg() 573 if ((fl6.flowlabel & IPV6_FLOWLABEL_MASK) && !flowlabel) { in l2tp_ip6_sendmsg() [all...] |
/kernel/linux/linux-6.6/net/ipv6/ |
H A D | seg6_iptunnel.c | 109 /* Compute flowlabel for outer IPv6 header */ 114 __be32 flowlabel = 0; in seg6_make_flowlabel() local 120 flowlabel = (__force __be32)hash & IPV6_FLOWLABEL_MASK; in seg6_make_flowlabel() 122 flowlabel = ip6_flowlabel(inner_hdr); in seg6_make_flowlabel() 124 return flowlabel; in seg6_make_flowlabel() 135 __be32 flowlabel; in seg6_do_srh_encap() local 145 flowlabel = seg6_make_flowlabel(net, skb, inner_hdr); in seg6_do_srh_encap() 152 /* inherit tc, flowlabel and hlim in seg6_do_srh_encap() 159 flowlabel); in seg6_do_srh_encap() 162 ip6_flow_hdr(hdr, 0, flowlabel); in seg6_do_srh_encap() 214 __be32 flowlabel; seg6_do_srh_encap_red() local [all...] |
H A D | raw.c | 744 struct ip6_flowlabel *flowlabel = NULL; in rawv6_sendmsg() local 799 fl6.flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in rawv6_sendmsg() 800 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in rawv6_sendmsg() 801 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in rawv6_sendmsg() 802 if (IS_ERR(flowlabel)) in rawv6_sendmsg() 825 fl6.flowlabel = np->flow_label; in rawv6_sendmsg() 839 fl6_sock_release(flowlabel); in rawv6_sendmsg() 842 if ((fl6.flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { in rawv6_sendmsg() [all...] |
H A D | ping.c | 93 fl6.flowlabel = u->sin6_flowinfo & IPV6_FLOWINFO_MASK; in ping_v6_sendmsg() 100 fl6.flowlabel = np->flow_label; in ping_v6_sendmsg() 152 fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); in ping_v6_sendmsg()
|
H A D | udp.c | 1330 struct ip6_flowlabel *flowlabel = NULL; in udpv6_sendmsg() local 1434 fl6->flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in udpv6_sendmsg() 1435 if (fl6->flowlabel & IPV6_FLOWLABEL_MASK) { in udpv6_sendmsg() 1436 flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); in udpv6_sendmsg() 1437 if (IS_ERR(flowlabel)) in udpv6_sendmsg() 1460 fl6->flowlabel = np->flow_label; in udpv6_sendmsg() 1483 fl6_sock_release(flowlabel); in udpv6_sendmsg() 1486 if ((fl6->flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { in udpv6_sendmsg() [all...] |
H A D | datagram.c | 55 fl6->flowlabel = ip6_make_flowinfo(np->tclass, np->flow_label); in ip6_datagram_flow_key_init() 74 struct ip6_flowlabel *flowlabel = NULL; in ip6_datagram_dst_update() local 84 flowlabel = fl6_sock_lookup(sk, np->flow_label); in ip6_datagram_dst_update() 85 if (IS_ERR(flowlabel)) in ip6_datagram_dst_update() 91 opt = flowlabel ? flowlabel->opt : rcu_dereference(np->opt); in ip6_datagram_dst_update() 116 fl6_sock_release(flowlabel); in ip6_datagram_dst_update() 855 if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl() 856 if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl() 861 fl6->flowlabel in ip6_datagram_send_ctl() [all...] |
/kernel/linux/linux-5.10/net/ipv6/ |
H A D | seg6_iptunnel.c | 106 /* Compute flowlabel for outer IPv6 header */ 111 __be32 flowlabel = 0; in seg6_make_flowlabel() local 117 flowlabel = (__force __be32)hash & IPV6_FLOWLABEL_MASK; in seg6_make_flowlabel() 119 flowlabel = ip6_flowlabel(inner_hdr); in seg6_make_flowlabel() 121 return flowlabel; in seg6_make_flowlabel() 132 __be32 flowlabel; in seg6_do_srh_encap() local 142 flowlabel = seg6_make_flowlabel(net, skb, inner_hdr); in seg6_do_srh_encap() 149 /* inherit tc, flowlabel and hlim in seg6_do_srh_encap() 156 flowlabel); in seg6_do_srh_encap() 159 ip6_flow_hdr(hdr, 0, flowlabel); in seg6_do_srh_encap() [all...] |
H A D | raw.c | 780 struct ip6_flowlabel *flowlabel = NULL; in rawv6_sendmsg() local 840 fl6.flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in rawv6_sendmsg() 841 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in rawv6_sendmsg() 842 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in rawv6_sendmsg() 843 if (IS_ERR(flowlabel)) in rawv6_sendmsg() 866 fl6.flowlabel = np->flow_label; in rawv6_sendmsg() 880 fl6_sock_release(flowlabel); in rawv6_sendmsg() 883 if ((fl6.flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { in rawv6_sendmsg() [all...] |
H A D | udp.c | 1307 struct ip6_flowlabel *flowlabel = NULL; in udpv6_sendmsg() local 1411 fl6.flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in udpv6_sendmsg() 1412 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in udpv6_sendmsg() 1413 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in udpv6_sendmsg() 1414 if (IS_ERR(flowlabel)) in udpv6_sendmsg() 1437 fl6.flowlabel = np->flow_label; in udpv6_sendmsg() 1460 fl6_sock_release(flowlabel); in udpv6_sendmsg() 1463 if ((fl6.flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { in udpv6_sendmsg() [all...] |
H A D | datagram.c | 54 fl6->flowlabel = ip6_make_flowinfo(np->tclass, np->flow_label); in ip6_datagram_flow_key_init() 68 struct ip6_flowlabel *flowlabel = NULL; in ip6_datagram_dst_update() local 78 flowlabel = fl6_sock_lookup(sk, np->flow_label); in ip6_datagram_dst_update() 79 if (IS_ERR(flowlabel)) in ip6_datagram_dst_update() 85 opt = flowlabel ? flowlabel->opt : rcu_dereference(np->opt); in ip6_datagram_dst_update() 110 fl6_sock_release(flowlabel); in ip6_datagram_dst_update() 848 if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl() 849 if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl() 854 fl6->flowlabel in ip6_datagram_send_ctl() [all...] |
/kernel/linux/linux-5.10/net/ipv6/netfilter/ |
H A D | ip6table_mangle.c | 40 u_int32_t flowlabel, mark; in ip6t_mangle_out() local 43 /* save source/dest address, mark, hoplimit, flowlabel, priority, */ in ip6t_mangle_out() 49 /* flowlabel and prio (includes version, which shouldn't change either */ in ip6t_mangle_out() 50 flowlabel = *((u_int32_t *)ipv6_hdr(skb)); in ip6t_mangle_out() 59 flowlabel != *((u_int32_t *)ipv6_hdr(skb)))) { in ip6t_mangle_out()
|
/kernel/linux/linux-6.6/net/ipv6/netfilter/ |
H A D | ip6table_mangle.c | 37 u_int32_t flowlabel, mark; in ip6t_mangle_out() local 40 /* save source/dest address, mark, hoplimit, flowlabel, priority, */ in ip6t_mangle_out() 46 /* flowlabel and prio (includes version, which shouldn't change either */ in ip6t_mangle_out() 47 flowlabel = *((u_int32_t *)ipv6_hdr(skb)); in ip6t_mangle_out() 56 flowlabel != *((u_int32_t *)ipv6_hdr(skb)))) { in ip6t_mangle_out()
|
/kernel/linux/linux-5.10/net/netfilter/ |
H A D | nft_chain_route.c | 71 u32 mark, flowlabel; in nf_route_table_hook6() local 79 /* save source/dest address, mark, hoplimit, flowlabel, priority */ in nf_route_table_hook6() 85 /* flowlabel and prio (includes version, which shouldn't change either)*/ in nf_route_table_hook6() 86 flowlabel = *((u32 *)ipv6_hdr(skb)); in nf_route_table_hook6() 94 flowlabel != *((u32 *)ipv6_hdr(skb)))) { in nf_route_table_hook6()
|
/kernel/linux/linux-6.6/net/netfilter/ |
H A D | nft_chain_route.c | 71 u32 mark, flowlabel; in nf_route_table_hook6() local 79 /* save source/dest address, mark, hoplimit, flowlabel, priority */ in nf_route_table_hook6() 85 /* flowlabel and prio (includes version, which shouldn't change either)*/ in nf_route_table_hook6() 86 flowlabel = *((u32 *)ipv6_hdr(skb)); in nf_route_table_hook6() 94 flowlabel != *((u32 *)ipv6_hdr(skb)))) { in nf_route_table_hook6()
|
/kernel/linux/linux-5.10/include/net/ |
H A D | ipv6.h | 865 __be32 flowlabel, bool autolabel, in ip6_make_flowlabel() 870 /* @flowlabel may include more than a flow label, eg, the traffic class. in ip6_make_flowlabel() 873 flowlabel &= IPV6_FLOWLABEL_MASK; in ip6_make_flowlabel() 875 if (flowlabel || in ip6_make_flowlabel() 879 return flowlabel; in ip6_make_flowlabel() 889 flowlabel = (__force __be32)hash & IPV6_FLOWLABEL_MASK; in ip6_make_flowlabel() 892 flowlabel |= IPV6_FLOWLABEL_STATELESS_FLAG; in ip6_make_flowlabel() 894 return flowlabel; in ip6_make_flowlabel() 911 __be32 flowlabel, bool autolabel, in ip6_make_flowlabel() 914 return flowlabel; in ip6_make_flowlabel() 864 ip6_make_flowlabel(struct net *net, struct sk_buff *skb, __be32 flowlabel, bool autolabel, struct flowi6 *fl6) ip6_make_flowlabel() argument 910 ip6_make_flowlabel(struct net *net, struct sk_buff *skb, __be32 flowlabel, bool autolabel, struct flowi6 *fl6) ip6_make_flowlabel() argument 937 ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) ip6_flow_hdr() argument 958 ip6_make_flowinfo(unsigned int tclass, __be32 flowlabel) ip6_make_flowinfo() argument [all...] |
/kernel/linux/linux-6.6/include/net/ |
H A D | ipv6.h | 960 __be32 flowlabel, bool autolabel, in ip6_make_flowlabel() 965 /* @flowlabel may include more than a flow label, eg, the traffic class. in ip6_make_flowlabel() 968 flowlabel &= IPV6_FLOWLABEL_MASK; in ip6_make_flowlabel() 970 if (flowlabel || in ip6_make_flowlabel() 974 return flowlabel; in ip6_make_flowlabel() 984 flowlabel = (__force __be32)hash & IPV6_FLOWLABEL_MASK; in ip6_make_flowlabel() 987 flowlabel |= IPV6_FLOWLABEL_STATELESS_FLAG; in ip6_make_flowlabel() 989 return flowlabel; in ip6_make_flowlabel() 1006 __be32 flowlabel, bool autolabel, in ip6_make_flowlabel() 1009 return flowlabel; in ip6_make_flowlabel() 959 ip6_make_flowlabel(struct net *net, struct sk_buff *skb, __be32 flowlabel, bool autolabel, struct flowi6 *fl6) ip6_make_flowlabel() argument 1005 ip6_make_flowlabel(struct net *net, struct sk_buff *skb, __be32 flowlabel, bool autolabel, struct flowi6 *fl6) ip6_make_flowlabel() argument 1040 ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) ip6_flow_hdr() argument 1066 ip6_make_flowinfo(unsigned int tclass, __be32 flowlabel) ip6_make_flowinfo() argument [all...] |
/kernel/linux/linux-5.10/drivers/infiniband/hw/hns/ |
H A D | hns_roce_ah.c | 71 ah->av.flowlabel = grh->flow_label; in hns_roce_create_ah() 101 rdma_ah_set_grh(ah_attr, NULL, ah->av.flowlabel, in hns_roce_query_ah()
|
/kernel/linux/linux-6.6/drivers/infiniband/hw/hns/ |
H A D | hns_roce_ah.c | 74 ah->av.flowlabel = grh->flow_label; in hns_roce_create_ah() 112 rdma_ah_set_grh(ah_attr, NULL, ah->av.flowlabel, in hns_roce_query_ah()
|
/kernel/linux/linux-6.6/net/sctp/ |
H A D | ipv6.c | 238 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in sctp_v6_xmit() 264 label = ip6_make_flowlabel(sock_net(sk), skb, fl6->flowlabel, true, fl6); in sctp_v6_xmit() 298 if (t->flowlabel & SCTP_FLOWLABEL_SET_MASK) in sctp_v6_get_dst() 299 fl6->flowlabel = htonl(t->flowlabel & SCTP_FLOWLABEL_VAL_MASK); in sctp_v6_get_dst() 301 if (np->sndflow && (fl6->flowlabel & IPV6_FLOWLABEL_MASK)) { in sctp_v6_get_dst() 302 struct ip6_flowlabel *flowlabel; in sctp_v6_get_dst() local 304 flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); in sctp_v6_get_dst() 305 if (IS_ERR(flowlabel)) in sctp_v6_get_dst() [all...] |
/kernel/linux/linux-5.10/net/sctp/ |
H A D | ipv6.c | 209 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in sctp_v6_xmit() 250 if (t->flowlabel & SCTP_FLOWLABEL_SET_MASK) in sctp_v6_get_dst() 251 fl6->flowlabel = htonl(t->flowlabel & SCTP_FLOWLABEL_VAL_MASK); in sctp_v6_get_dst() 253 if (np->sndflow && (fl6->flowlabel & IPV6_FLOWLABEL_MASK)) { in sctp_v6_get_dst() 254 struct ip6_flowlabel *flowlabel; in sctp_v6_get_dst() local 256 flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); in sctp_v6_get_dst() 257 if (IS_ERR(flowlabel)) in sctp_v6_get_dst() 259 fl6_sock_release(flowlabel); in sctp_v6_get_dst() [all...] |
/kernel/linux/linux-5.10/net/dccp/ |
H A D | ipv6.c | 202 fl6.flowlabel = 0; in dccp_v6_send_response() 831 fl6.flowlabel = usin->sin6_flowinfo & IPV6_FLOWINFO_MASK; in dccp_v6_connect() 832 IP6_ECN_flow_init(fl6.flowlabel); in dccp_v6_connect() 833 if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { in dccp_v6_connect() 834 struct ip6_flowlabel *flowlabel; in dccp_v6_connect() local 835 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in dccp_v6_connect() 836 if (IS_ERR(flowlabel)) in dccp_v6_connect() 838 fl6_sock_release(flowlabel); in dccp_v6_connect() 871 np->flow_label = fl6.flowlabel; in dccp_v6_connect() [all...] |
/kernel/linux/linux-6.6/net/dccp/ |
H A D | ipv6.c | 210 fl6.flowlabel = 0; in dccp_v6_send_response() 843 fl6.flowlabel = usin->sin6_flowinfo & IPV6_FLOWINFO_MASK; in dccp_v6_connect() 844 IP6_ECN_flow_init(fl6.flowlabel); in dccp_v6_connect() 845 if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { in dccp_v6_connect() 846 struct ip6_flowlabel *flowlabel; in dccp_v6_connect() local 847 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in dccp_v6_connect() 848 if (IS_ERR(flowlabel)) in dccp_v6_connect() 850 fl6_sock_release(flowlabel); in dccp_v6_connect() 883 np->flow_label = fl6.flowlabel; in dccp_v6_connect() [all...] |