@@ -231,7 +231,7 @@ static inline void core_fill_in_l2(struct sk_buff *skb, u16 *eth_protocol, u16 *
231231 u8 * skb_head = BPF_CORE_READ (skb , head );
232232 u16 skb_mac_header = BPF_CORE_READ (skb , mac_header );
233233
234- bpf_probe_read (& eth , sizeof (eth ), (struct ethhdr * )(skb_head + skb_mac_header ));
234+ bpf_probe_read_kernel (& eth , sizeof (eth ), (struct ethhdr * )(skb_head + skb_mac_header ));
235235 * eth_protocol = bpf_ntohs (eth .h_proto );
236236 if (* eth_protocol == ETH_P_IP ) {
237237 * family = AF_INET ;
@@ -249,7 +249,7 @@ static inline void core_fill_in_l3(struct sk_buff *skb, flow_id *id, u16 family,
249249 case AF_INET : {
250250 struct iphdr ip ;
251251 __builtin_memset (& ip , 0 , sizeof (ip ));
252- bpf_probe_read (& ip , sizeof (ip ), (struct iphdr * )(skb_head + skb_network_header ));
252+ bpf_probe_read_kernel (& ip , sizeof (ip ), (struct iphdr * )(skb_head + skb_network_header ));
253253 __builtin_memcpy (id -> src_ip , ip4in6 , sizeof (ip4in6 ));
254254 __builtin_memcpy (id -> dst_ip , ip4in6 , sizeof (ip4in6 ));
255255 __builtin_memcpy (id -> src_ip + sizeof (ip4in6 ), & ip .saddr , sizeof (ip .saddr ));
@@ -261,7 +261,7 @@ static inline void core_fill_in_l3(struct sk_buff *skb, flow_id *id, u16 family,
261261 case AF_INET6 : {
262262 struct ipv6hdr ip ;
263263 __builtin_memset (& ip , 0 , sizeof (ip ));
264- bpf_probe_read (& ip , sizeof (ip ), (struct ipv6hdr * )(skb_head + skb_network_header ));
264+ bpf_probe_read_kernel (& ip , sizeof (ip ), (struct ipv6hdr * )(skb_head + skb_network_header ));
265265 __builtin_memcpy (id -> src_ip , ip .saddr .in6_u .u6_addr8 , IP_MAX_LEN );
266266 __builtin_memcpy (id -> dst_ip , ip .daddr .in6_u .u6_addr8 , IP_MAX_LEN );
267267 * dscp = ipv6_get_dscp (& ip );
@@ -281,7 +281,7 @@ static inline void core_fill_in_tcp(struct sk_buff *skb, flow_id *id, u16 *flags
281281
282282 __builtin_memset (& tcp , 0 , sizeof (tcp ));
283283
284- bpf_probe_read (& tcp , sizeof (tcp ), (struct tcphdr * )(skb_head + skb_transport_header ));
284+ bpf_probe_read_kernel (& tcp , sizeof (tcp ), (struct tcphdr * )(skb_head + skb_transport_header ));
285285 sport = bpf_ntohs (tcp .source );
286286 dport = bpf_ntohs (tcp .dest );
287287 id -> src_port = sport ;
@@ -298,7 +298,7 @@ static inline void core_fill_in_udp(struct sk_buff *skb, flow_id *id) {
298298
299299 __builtin_memset (& udp , 0 , sizeof (udp ));
300300
301- bpf_probe_read (& udp , sizeof (udp ), (struct udphdr * )(skb_head + skb_transport_header ));
301+ bpf_probe_read_kernel (& udp , sizeof (udp ), (struct udphdr * )(skb_head + skb_transport_header ));
302302 sport = bpf_ntohs (udp .source );
303303 dport = bpf_ntohs (udp .dest );
304304 id -> src_port = sport ;
@@ -314,7 +314,7 @@ static inline void core_fill_in_sctp(struct sk_buff *skb, flow_id *id) {
314314
315315 __builtin_memset (& sctp , 0 , sizeof (sctp ));
316316
317- bpf_probe_read (& sctp , sizeof (sctp ), (struct sctphdr * )(skb_head + skb_transport_header ));
317+ bpf_probe_read_kernel (& sctp , sizeof (sctp ), (struct sctphdr * )(skb_head + skb_transport_header ));
318318 sport = bpf_ntohs (sctp .source );
319319 dport = bpf_ntohs (sctp .dest );
320320 id -> src_port = sport ;
@@ -328,7 +328,8 @@ static inline void core_fill_in_icmpv4(struct sk_buff *skb, flow_id *id) {
328328 struct icmphdr icmph ;
329329 __builtin_memset (& icmph , 0 , sizeof (icmph ));
330330
331- bpf_probe_read (& icmph , sizeof (icmph ), (struct icmphdr * )(skb_head + skb_transport_header ));
331+ bpf_probe_read_kernel (& icmph , sizeof (icmph ),
332+ (struct icmphdr * )(skb_head + skb_transport_header ));
332333 id -> icmp_type = icmph .type ;
333334 id -> icmp_code = icmph .code ;
334335 id -> transport_protocol = IPPROTO_ICMP ;
@@ -340,7 +341,8 @@ static inline void core_fill_in_icmpv6(struct sk_buff *skb, flow_id *id) {
340341 struct icmp6hdr icmph ;
341342 __builtin_memset (& icmph , 0 , sizeof (icmph ));
342343
343- bpf_probe_read (& icmph , sizeof (icmph ), (struct icmp6hdr * )(skb_head + skb_transport_header ));
344+ bpf_probe_read_kernel (& icmph , sizeof (icmph ),
345+ (struct icmp6hdr * )(skb_head + skb_transport_header ));
344346 id -> icmp_type = icmph .icmp6_type ;
345347 id -> icmp_code = icmph .icmp6_code ;
346348 id -> transport_protocol = IPPROTO_ICMPV6 ;
0 commit comments