IPSTATS_MIB_INOCTETS,                   /* InOctets */
        IPSTATS_MIB_INDELIVERS,                 /* InDelivers */
        IPSTATS_MIB_OUTFORWDATAGRAMS,           /* OutForwDatagrams */
-       IPSTATS_MIB_OUTPKTS,                    /* OutRequests */
+       IPSTATS_MIB_OUTREQUESTS,                /* OutRequests */
        IPSTATS_MIB_OUTOCTETS,                  /* OutOctets */
 /* other fields */
        IPSTATS_MIB_INHDRERRORS,                /* InHdrErrors */
        IPSTATS_MIB_ECT0PKTS,                   /* InECT0Pkts */
        IPSTATS_MIB_CEPKTS,                     /* InCEPkts */
        IPSTATS_MIB_REASM_OVERLAPS,             /* ReasmOverlaps */
+       IPSTATS_MIB_OUTPKTS,                    /* OutTransmits */
        __IPSTATS_MIB_MAX
 };
 
 
 {
        struct iphdr *iph = ip_hdr(skb);
 
+       IP_INC_STATS(net, IPSTATS_MIB_OUTREQUESTS);
+
        iph_set_totlen(iph, skb->len);
        ip_send_check(iph);
 
 
        SNMP_MIB_ITEM("InUnknownProtos", IPSTATS_MIB_INUNKNOWNPROTOS),
        SNMP_MIB_ITEM("InDiscards", IPSTATS_MIB_INDISCARDS),
        SNMP_MIB_ITEM("InDelivers", IPSTATS_MIB_INDELIVERS),
-       SNMP_MIB_ITEM("OutRequests", IPSTATS_MIB_OUTPKTS),
+       SNMP_MIB_ITEM("OutRequests", IPSTATS_MIB_OUTREQUESTS),
        SNMP_MIB_ITEM("OutDiscards", IPSTATS_MIB_OUTDISCARDS),
        SNMP_MIB_ITEM("OutNoRoutes", IPSTATS_MIB_OUTNOROUTES),
        SNMP_MIB_ITEM("ReasmTimeout", IPSTATS_MIB_REASMTIMEOUT),
        SNMP_MIB_ITEM("FragOKs", IPSTATS_MIB_FRAGOKS),
        SNMP_MIB_ITEM("FragFails", IPSTATS_MIB_FRAGFAILS),
        SNMP_MIB_ITEM("FragCreates", IPSTATS_MIB_FRAGCREATES),
+       SNMP_MIB_ITEM("OutTransmits", IPSTATS_MIB_OUTPKTS),
        SNMP_MIB_SENTINEL
 };
 
 
                        return res;
        }
 
+       IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUT, skb->len);
+
        rcu_read_lock();
        nexthop = rt6_nexthop((struct rt6_info *)dst, daddr);
        neigh = __ipv6_neigh_lookup_noref(dev, nexthop);
 
        mtu = dst_mtu(dst);
        if ((skb->len <= mtu) || skb->ignore_df || skb_is_gso(skb)) {
-               IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUT, skb->len);
+               IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTREQUESTS);
 
                /* if egress device is enslaved to an L3 master device pass the
                 * skb to its handler for processing
        skb->tstamp = cork->base.transmit_time;
 
        ip6_cork_steal_dst(skb, cork);
-       IP6_UPD_PO_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUT, skb->len);
+       IP6_INC_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUTREQUESTS);
        if (proto == IPPROTO_ICMPV6) {
                struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
                u8 icmp6_type;
 
 
        rcu_read_lock();
        idev = __in6_dev_get(skb->dev);
-       IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUT, skb->len);
+       IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTREQUESTS);
 
        payload_len = (skb_tail_pointer(skb) - skb_network_header(skb)) -
                sizeof(*pip6);
        full_len = sizeof(struct ipv6hdr) + payload_len;
 
        rcu_read_lock();
-       IP6_UPD_PO_STATS(net, __in6_dev_get(dev),
-                     IPSTATS_MIB_OUT, full_len);
+       IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_OUTREQUESTS);
        rcu_read_unlock();
 
        skb = sock_alloc_send_skb(sk, hlen + tlen + full_len, 1, &err);
 
 
        rcu_read_lock();
        idev = __in6_dev_get(dst->dev);
-       IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUT, skb->len);
+       IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTREQUESTS);
 
        err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT,
                      net, sk, skb, NULL, dst->dev,
 
        SNMP_MIB_ITEM("Ip6InDiscards", IPSTATS_MIB_INDISCARDS),
        SNMP_MIB_ITEM("Ip6InDelivers", IPSTATS_MIB_INDELIVERS),
        SNMP_MIB_ITEM("Ip6OutForwDatagrams", IPSTATS_MIB_OUTFORWDATAGRAMS),
-       SNMP_MIB_ITEM("Ip6OutRequests", IPSTATS_MIB_OUTPKTS),
+       SNMP_MIB_ITEM("Ip6OutRequests", IPSTATS_MIB_OUTREQUESTS),
        SNMP_MIB_ITEM("Ip6OutDiscards", IPSTATS_MIB_OUTDISCARDS),
        SNMP_MIB_ITEM("Ip6OutNoRoutes", IPSTATS_MIB_OUTNOROUTES),
        SNMP_MIB_ITEM("Ip6ReasmTimeout", IPSTATS_MIB_REASMTIMEOUT),
        SNMP_MIB_ITEM("Ip6InECT1Pkts", IPSTATS_MIB_ECT1PKTS),
        SNMP_MIB_ITEM("Ip6InECT0Pkts", IPSTATS_MIB_ECT0PKTS),
        SNMP_MIB_ITEM("Ip6InCEPkts", IPSTATS_MIB_CEPKTS),
+       SNMP_MIB_ITEM("Ip6OutTransmits", IPSTATS_MIB_OUTPKTS),
        SNMP_MIB_SENTINEL
 };
 
 
         * have been queued for deletion.
         */
        rcu_read_lock();
-       IP6_UPD_PO_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUT, skb->len);
+       IP6_INC_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUTREQUESTS);
        err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, net, sk, skb,
                      NULL, rt->dst.dev, dst_output);
        if (err > 0)