Lines Matching refs:skb

268 		struct sk_buff *skb = skbs[i];
270 skb = __xdp_build_skb_from_frame(xdpf, skb, dev);
271 if (!skb) {
276 list_add_tail(&skb->list, &list);
871 static int convert___skb_to_skb(struct sk_buff *skb, struct __sk_buff *__skb)
873 struct qdisc_skb_cb *cb = (struct qdisc_skb_cb *)skb->cb;
922 skb->mark = __skb->mark;
923 skb->priority = __skb->priority;
924 skb->skb_iif = __skb->ingress_ifindex;
925 skb->tstamp = __skb->tstamp;
929 cb->pkt_len = skb->len;
931 if (__skb->wire_len < skb->len ||
939 skb_shinfo(skb)->gso_segs = __skb->gso_segs;
940 skb_shinfo(skb)->gso_size = __skb->gso_size;
941 skb_shinfo(skb)->hwtstamps.hwtstamp = __skb->hwtstamp;
946 static void convert_skb_to___skb(struct sk_buff *skb, struct __sk_buff *__skb)
948 struct qdisc_skb_cb *cb = (struct qdisc_skb_cb *)skb->cb;
953 __skb->mark = skb->mark;
954 __skb->priority = skb->priority;
955 __skb->ingress_ifindex = skb->skb_iif;
956 __skb->ifindex = skb->dev->ifindex;
957 __skb->tstamp = skb->tstamp;
960 __skb->gso_segs = skb_shinfo(skb)->gso_segs;
961 __skb->hwtstamp = skb_shinfo(skb)->hwtstamps.hwtstamp;
981 struct sk_buff *skb;
1023 skb = slab_build_skb(data);
1024 if (!skb) {
1030 skb->sk = sk;
1032 skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN);
1033 __skb_put(skb, size);
1041 skb->protocol = eth_type_trans(skb, dev);
1042 skb_reset_network_header(skb);
1044 switch (skb->protocol) {
1047 if (sizeof(struct iphdr) <= skb_headlen(skb)) {
1048 sk->sk_rcv_saddr = ip_hdr(skb)->saddr;
1049 sk->sk_daddr = ip_hdr(skb)->daddr;
1055 if (sizeof(struct ipv6hdr) <= skb_headlen(skb)) {
1056 sk->sk_v6_rcv_saddr = ipv6_hdr(skb)->saddr;
1057 sk->sk_v6_daddr = ipv6_hdr(skb)->daddr;
1066 __skb_push(skb, hh_len);
1068 bpf_compute_data_pointers(skb);
1069 ret = convert___skb_to_skb(skb, ctx);
1072 ret = bpf_test_run(prog, skb, repeat, &retval, &duration, false);
1076 if (skb_headroom(skb) < hh_len) {
1077 int nhead = HH_DATA_ALIGN(hh_len - skb_headroom(skb));
1079 if (pskb_expand_head(skb, nhead, 0, GFP_USER)) {
1084 memset(__skb_push(skb, hh_len), 0, hh_len);
1086 convert_skb_to___skb(skb, ctx);
1088 size = skb->len;
1089 /* bpf program can never convert linear skb to non-linear */
1090 if (WARN_ON_ONCE(skb_is_nonlinear(skb)))
1091 size = skb_headlen(skb);
1092 ret = bpf_test_finish(kattr, uattr, skb->data, NULL, size, retval,
1100 kfree_skb(skb);
1608 struct sk_buff *skb = NULL;
1640 skb = slab_build_skb(data);
1641 if (!skb) {
1648 skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN);
1649 __skb_put(skb, size);
1657 skb->protocol = eth_type_trans(skb, dev);
1658 switch (skb->protocol) {
1674 skb_reset_network_header(skb);
1676 skb->protocol = nfproto_eth(hook_state.pf);
1679 ctx.skb = skb;
1689 kfree_skb(skb);