Print this page
DLPX-25998 TCP congestion control is inadequate
Reviewed at: http://reviews.delphix.com/r/34808/
DLPX-37540 TCP per-connection kernel statistics DLPX-37544 connstat command to display per-connection TCP statistics

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip/ip.c
          +++ new/usr/src/uts/common/inet/ip/ip.c
↓ open down ↓ 87 lines elided ↑ open up ↑
  88   88  #include <inet/ip_multi.h>
  89   89  #include <inet/ip_if.h>
  90   90  #include <inet/ip_ire.h>
  91   91  #include <inet/ip_ftable.h>
  92   92  #include <inet/ip_rts.h>
  93   93  #include <inet/ip_ndp.h>
  94   94  #include <inet/ip_listutils.h>
  95   95  #include <netinet/igmp.h>
  96   96  #include <netinet/ip_mroute.h>
  97   97  #include <inet/ipp_common.h>
       98 +#include <inet/cc.h>
  98   99  
  99  100  #include <net/pfkeyv2.h>
 100  101  #include <inet/sadb.h>
 101  102  #include <inet/ipsec_impl.h>
 102  103  #include <inet/iptun/iptun_impl.h>
 103  104  #include <inet/ipdrop.h>
 104  105  #include <inet/ip_netinfo.h>
 105  106  #include <inet/ilb_ip.h>
 106  107  
 107  108  #include <sys/ethernet.h>
↓ open down ↓ 4452 lines elided ↑ open up ↑
4560 4561          }
4561 4562  #else
4562 4563          if ((ip_minor_arena_sa = inet_minor_create("ip_minor_arena_sa",
4563 4564              INET_MIN_DEV + 2, MAXMIN, KM_SLEEP)) == NULL) {
4564 4565                  cmn_err(CE_PANIC,
4565 4566                      "ip_ddi_init: ip_minor_arena_sa creation failed\n");
4566 4567          }
4567 4568  #endif
4568 4569          ip_poll_normal_ticks = MSEC_TO_TICK_ROUNDUP(ip_poll_normal_ms);
4569 4570  
     4571 +        cc_init();
     4572 +
4570 4573          ipcl_g_init();
4571 4574          ip_ire_g_init();
4572 4575          ip_net_g_init();
4573 4576  
4574 4577  #ifdef DEBUG
4575 4578          tsd_create(&ip_thread_data, ip_thread_exit);
4576 4579          rw_init(&ip_thread_rwlock, NULL, RW_DEFAULT, NULL);
4577 4580          list_create(&ip_thread_list, sizeof (th_hash_t),
4578 4581              offsetof(th_hash_t, thh_link));
4579 4582  #endif
↓ open down ↓ 5051 lines elided ↑ open up ↑
9631 9634          if (!(level == MIB2_TCP || level == MIB2_UDP)) {
9632 9635                  if ((mpctl = icmp_snmp_get(q, mpctl)) == NULL) {
9633 9636                          return (1);
9634 9637                  }
9635 9638          }
9636 9639  
9637 9640          if (level != MIB2_TCP) {
9638 9641                  if ((mpctl = udp_snmp_get(q, mpctl, legacy_req)) == NULL) {
9639 9642                          return (1);
9640 9643                  }
     9644 +                if (level == MIB2_UDP) {
     9645 +                        goto done;
     9646 +                }
9641 9647          }
9642 9648  
9643 9649          if (level != MIB2_UDP) {
9644 9650                  if ((mpctl = tcp_snmp_get(q, mpctl, legacy_req)) == NULL) {
9645 9651                          return (1);
9646 9652                  }
     9653 +                if (level == MIB2_TCP) {
     9654 +                        goto done;
     9655 +                }
9647 9656          }
9648 9657  
9649 9658          if ((mpctl = ip_snmp_get_mib2_ip_traffic_stats(q, mpctl,
9650 9659              ipst, legacy_req)) == NULL) {
9651 9660                  return (1);
9652 9661          }
9653 9662  
9654 9663          if ((mpctl = ip_snmp_get_mib2_ip6(q, mpctl, ipst,
9655 9664              legacy_req)) == NULL) {
9656 9665                  return (1);
↓ open down ↓ 56 lines elided ↑ open up ↑
9713 9722          mpctl = ip_snmp_get_mib2_ip6_route_media(q, mpctl, level, ipst);
9714 9723          if (mpctl == NULL)
9715 9724                  return (1);
9716 9725  
9717 9726          if ((mpctl = sctp_snmp_get_mib2(q, mpctl, sctps)) == NULL) {
9718 9727                  return (1);
9719 9728          }
9720 9729          if ((mpctl = ip_snmp_get_mib2_ip_dce(q, mpctl, ipst)) == NULL) {
9721 9730                  return (1);
9722 9731          }
     9732 +done:
9723 9733          freemsg(mpctl);
9724 9734          return (1);
9725 9735  }
9726 9736  
9727 9737  /* Get global (legacy) IPv4 statistics */
9728 9738  static mblk_t *
9729 9739  ip_snmp_get_mib2_ip(queue_t *q, mblk_t *mpctl, mib2_ipIfStatsEntry_t *ipmib,
9730 9740      ip_stack_t *ipst, boolean_t legacy_req)
9731 9741  {
9732 9742          mib2_ip_t               old_ip_mib;
↓ open down ↓ 5565 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX