• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/bridge/

Lines Matching refs:skb

35 int (*br_insert_multissid_hook)(struct sk_buff *skb, struct net_bridge_port *dst)=NULL;
47 int (*br_insert_accesscntl_hook)(struct sk_buff *skb, struct net_bridge_port *dst)=NULL;
54 struct sk_buff *skb,
56 struct sk_buff *skb));
60 const struct sk_buff *skb)
69 ret=br_insert_multissid_hook(skb, p);
81 ret=br_insert_accesscntl_hook(skb, p);
89 return (((p->flags & BR_HAIRPIN_MODE) || skb->dev != p->dev) &&
93 static inline unsigned packet_length(const struct sk_buff *skb)
95 return skb->len - (skb->protocol == htons(ETH_P_8021Q) ? VLAN_HLEN : 0);
98 int br_dev_queue_push_xmit(struct sk_buff *skb)
101 if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb))
102 kfree_skb(skb);
105 if (nf_bridge_maybe_copy_header(skb))
106 kfree_skb(skb);
108 skb_push(skb, ETH_HLEN);
109 dev_queue_xmit(skb);
116 int br_forward_finish(struct sk_buff *skb)
118 return NF_HOOK(NFPROTO_BRIDGE, NF_BR_POST_ROUTING, skb, NULL, skb->dev,
123 static void __br_deliver(const struct net_bridge_port *to, struct sk_buff *skb)
125 skb->dev = to->dev;
128 if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb))
129 kfree_skb(skb);
131 skb_push(skb, ETH_HLEN);
132 br_netpoll_send_skb(to, skb);
137 NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev,
141 static void __br_forward(const struct net_bridge_port *to, struct sk_buff *skb)
145 if (skb_warn_if_lro(skb)) {
146 kfree_skb(skb);
150 indev = skb->dev;
151 skb->dev = to->dev;
152 skb_forward_csum(skb);
154 NF_HOOK(NFPROTO_BRIDGE, NF_BR_FORWARD, skb, indev, skb->dev,
159 void br_deliver(const struct net_bridge_port *to, struct sk_buff *skb)
161 if (should_deliver(to, skb)) {
162 __br_deliver(to, skb);
166 kfree_skb(skb);
170 void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0)
172 if (should_deliver(to, skb)) {
174 deliver_clone(to, skb, __br_forward);
176 __br_forward(to, skb);
181 kfree_skb(skb);
185 struct sk_buff *skb,
187 struct sk_buff *skb))
189 struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev;
191 skb = skb_clone(skb, GFP_ATOMIC);
192 if (!skb) {
197 __packet_hook(prev, skb);
203 struct sk_buff *skb,
205 struct sk_buff *skb))
209 if (!should_deliver(p, skb))
215 err = deliver_clone(prev, skb, __packet_hook);
224 static void br_flood(struct net_bridge *br, struct sk_buff *skb,
227 struct sk_buff *skb))
235 prev = maybe_deliver(prev, p, skb, __packet_hook);
244 deliver_clone(prev, skb, __packet_hook);
246 __packet_hook(prev, skb);
251 kfree_skb(skb);
256 void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb)
258 br_flood(br, skb, NULL, __br_deliver);
262 void br_flood_forward(struct net_bridge *br, struct sk_buff *skb,
265 br_flood(br, skb, skb2, __br_forward);
271 struct sk_buff *skb, struct sk_buff *skb0,
274 struct sk_buff *skb))
276 struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev;
294 prev = maybe_deliver(prev, port, skb, __packet_hook);
306 skb->protocol == htons(ETH_P_IP) &&
307 ip_hdr(skb)->daddr == in_aton("239.255.255.250")) {
311 prev = maybe_deliver(prev, port, skb, __packet_hook);
321 deliver_clone(prev, skb, __packet_hook);
323 __packet_hook(prev, skb);
328 kfree_skb(skb);
333 struct sk_buff *skb)
335 br_multicast_flood(mdst, skb, NULL, __br_deliver);
340 struct sk_buff *skb, struct sk_buff *skb2)
342 br_multicast_flood(mdst, skb, skb2, __br_forward);