Hello.

In article <[EMAIL PROTECTED]> (at Sat, 7 Jan 2006 10:05:52 -0800), "Kris 
Katterjohn" <[EMAIL PROTECTED]> says:

> PACKET_AUTO_STATISTICS is the default and the kernel will zero the packet
> statistics when the PACKET_STATISTICS getsockopt() call is used.

> +     case PACKET_AUTO_STATISTICS:
> +             po->auto_reset_stats = 1;
> +             return 0;
> +
> +     case PACKET_MANUAL_STATISTICS:
> +             po->auto_reset_stats = 0;
> +             return 0;
> +
> +     case PACKET_RESET_STATISTICS:
> +             spin_lock_bh(&sk->sk_receive_queue.lock);
> +             memset(&po->stats, 0, sizeof po->stats);
> +             spin_unlock_bh(&sk->sk_receive_queue.lock);
> +             return 0;

We can merge PACKET_AUTO_STATISTICS and PACKET_MANUAL_STATISTICS,
into one, e.g. PACKET_ACCUMULATED_STATISTICS, and we can reuse
PACKET_STATISTICS for resetting;
        case PACKET_ACCUMULATED_STATISTICS:
        {
                int val;
                if (len < sizeof(val))
                        return -EINVAL;
                if (copy_from_user(&val, optval, len))
                        return -EFAULT;
                po->auto_reset_stats = val;
                return 0;
        }

        case PACKET_STATISTICS:
                spin_lock_bh(&sk->sk_receive_queue.lock);
                memset(&po->stats, 0, sizeof po->stats);
                spin_unlock_bh(&sk->sk_receive_queue.lock);
                return 0;

And, please provide getsockopt side.  Thanks.

--yoshfuji
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to