On Wed, Apr 23, 2008 at 10:43:40AM -0700, Stephen Hemminger wrote:
> On Wed, 23 Apr 2008 10:53:12 +1000
> "Leigh Sharpe" <[EMAIL PROTECTED]> wrote:
> 
> >  Is there any way of getting detailed statistics from a bridge?
> > Specifically, I need to know how many frames may have been dropped
> > because they exceed the MTU of the underlying port. I'm having a few
> > issues with MTUs not agreeing.
> 
> It would not be hard to modify kernel to use one of the existing statistics on
> the bridge interface to keep track of the dropped packets. I'll look into it
> if no one else gets to it first (hint, hint)
> 

I think this change will do it.

Regards,
Jaime Medrano.

--- linux-2.6.25.orig/net/bridge/br_forward.c   2008-04-24 11:04:32.000000000 
+0200
+++ linux-2.6.25/net/bridge/br_forward.c        2008-04-24 15:15:02.000000000 
+0200
@@ -35,9 +35,10 @@
 int br_dev_queue_push_xmit(struct sk_buff *skb)
 {
        /* drop mtu oversized packets except gso */
-       if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb))
+       if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb)) {
+               rcu_dereference(skb->dev->br_port)->br->statistics.tx_dropped++;
                kfree_skb(skb);
-       else {
+       } else {
                /* ip_refrag calls ip_fragment, doesn't copy the MAC header. */
                if (nf_bridge_maybe_copy_header(skb))
                        kfree_skb(skb);
_______________________________________________
Bridge mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/bridge

Reply via email to