Print this page
7127  remove -Wno-missing-braces from Makefile.uts


 435                                 return (0);
 436                         /* TODO: delete entry defined by tce */
 437                         return (1);
 438                 default:
 439                         return (0);
 440                 }
 441         default:
 442                 return (1);
 443         }
 444 }
 445 
 446 /*
 447  * TCP Kstats implementation
 448  */
 449 void *
 450 tcp_kstat_init(netstackid_t stackid)
 451 {
 452         kstat_t *ksp;
 453 
 454         tcp_named_kstat_t template = {
 455                 { "rtoAlgorithm",       KSTAT_DATA_INT32, 0 },
 456                 { "rtoMin",             KSTAT_DATA_INT32, 0 },
 457                 { "rtoMax",             KSTAT_DATA_INT32, 0 },
 458                 { "maxConn",            KSTAT_DATA_INT32, 0 },
 459                 { "activeOpens",        KSTAT_DATA_UINT32, 0 },
 460                 { "passiveOpens",       KSTAT_DATA_UINT32, 0 },
 461                 { "attemptFails",       KSTAT_DATA_UINT32, 0 },
 462                 { "estabResets",        KSTAT_DATA_UINT32, 0 },
 463                 { "currEstab",          KSTAT_DATA_UINT32, 0 },
 464                 { "inSegs",             KSTAT_DATA_UINT64, 0 },
 465                 { "outSegs",            KSTAT_DATA_UINT64, 0 },
 466                 { "retransSegs",        KSTAT_DATA_UINT32, 0 },
 467                 { "connTableSize",      KSTAT_DATA_INT32, 0 },
 468                 { "outRsts",            KSTAT_DATA_UINT32, 0 },
 469                 { "outDataSegs",        KSTAT_DATA_UINT32, 0 },
 470                 { "outDataBytes",       KSTAT_DATA_UINT32, 0 },
 471                 { "retransBytes",       KSTAT_DATA_UINT32, 0 },
 472                 { "outAck",             KSTAT_DATA_UINT32, 0 },
 473                 { "outAckDelayed",      KSTAT_DATA_UINT32, 0 },
 474                 { "outUrg",             KSTAT_DATA_UINT32, 0 },
 475                 { "outWinUpdate",       KSTAT_DATA_UINT32, 0 },
 476                 { "outWinProbe",        KSTAT_DATA_UINT32, 0 },
 477                 { "outControl",         KSTAT_DATA_UINT32, 0 },
 478                 { "outFastRetrans",     KSTAT_DATA_UINT32, 0 },
 479                 { "inAckSegs",          KSTAT_DATA_UINT32, 0 },
 480                 { "inAckBytes",         KSTAT_DATA_UINT32, 0 },
 481                 { "inDupAck",           KSTAT_DATA_UINT32, 0 },
 482                 { "inAckUnsent",        KSTAT_DATA_UINT32, 0 },
 483                 { "inDataInorderSegs",  KSTAT_DATA_UINT32, 0 },
 484                 { "inDataInorderBytes", KSTAT_DATA_UINT32, 0 },
 485                 { "inDataUnorderSegs",  KSTAT_DATA_UINT32, 0 },
 486                 { "inDataUnorderBytes", KSTAT_DATA_UINT32, 0 },
 487                 { "inDataDupSegs",      KSTAT_DATA_UINT32, 0 },
 488                 { "inDataDupBytes",     KSTAT_DATA_UINT32, 0 },
 489                 { "inDataPartDupSegs",  KSTAT_DATA_UINT32, 0 },
 490                 { "inDataPartDupBytes", KSTAT_DATA_UINT32, 0 },
 491                 { "inDataPastWinSegs",  KSTAT_DATA_UINT32, 0 },
 492                 { "inDataPastWinBytes", KSTAT_DATA_UINT32, 0 },
 493                 { "inWinProbe",         KSTAT_DATA_UINT32, 0 },
 494                 { "inWinUpdate",        KSTAT_DATA_UINT32, 0 },
 495                 { "inClosed",           KSTAT_DATA_UINT32, 0 },
 496                 { "rttUpdate",          KSTAT_DATA_UINT32, 0 },
 497                 { "rttNoUpdate",        KSTAT_DATA_UINT32, 0 },
 498                 { "timRetrans",         KSTAT_DATA_UINT32, 0 },
 499                 { "timRetransDrop",     KSTAT_DATA_UINT32, 0 },
 500                 { "timKeepalive",       KSTAT_DATA_UINT32, 0 },
 501                 { "timKeepaliveProbe",  KSTAT_DATA_UINT32, 0 },
 502                 { "timKeepaliveDrop",   KSTAT_DATA_UINT32, 0 },
 503                 { "listenDrop",         KSTAT_DATA_UINT32, 0 },
 504                 { "listenDropQ0",       KSTAT_DATA_UINT32, 0 },
 505                 { "halfOpenDrop",       KSTAT_DATA_UINT32, 0 },
 506                 { "outSackRetransSegs", KSTAT_DATA_UINT32, 0 },
 507                 { "connTableSize6",     KSTAT_DATA_INT32, 0 }
 508         };
 509 
 510         ksp = kstat_create_netstack(TCP_MOD_NAME, stackid, TCP_MOD_NAME, "mib2",
 511             KSTAT_TYPE_NAMED, NUM_OF_FIELDS(tcp_named_kstat_t), 0, stackid);
 512 
 513         if (ksp == NULL)
 514                 return (NULL);
 515 
 516         template.rtoAlgorithm.value.ui32 = 4;
 517         template.maxConn.value.i32 = -1;
 518 
 519         bcopy(&template, ksp->ks_data, sizeof (template));
 520         ksp->ks_update = tcp_kstat_update;
 521         ksp->ks_private = (void *)(uintptr_t)stackid;
 522 
 523         /*
 524          * If this is an exclusive netstack for a local zone, the global zone
 525          * should still be able to read the kstat.
 526          */
 527         if (stackid != GLOBAL_NETSTACKID)


 674         ksp->ks_data = (void *)tcp_g_statp;
 675 
 676         kstat_install(ksp);
 677         return (ksp);
 678 }
 679 
 680 void
 681 tcp_g_kstat_fini(kstat_t *ksp)
 682 {
 683         if (ksp != NULL) {
 684                 kstat_delete(ksp);
 685         }
 686 }
 687 
 688 void *
 689 tcp_kstat2_init(netstackid_t stackid)
 690 {
 691         kstat_t *ksp;
 692 
 693         tcp_stat_t template = {
 694                 { "tcp_time_wait_syn_success",  KSTAT_DATA_UINT64, 0 },
 695                 { "tcp_clean_death_nondetached",        KSTAT_DATA_UINT64, 0 },
 696                 { "tcp_eager_blowoff_q",        KSTAT_DATA_UINT64, 0 },
 697                 { "tcp_eager_blowoff_q0",       KSTAT_DATA_UINT64, 0 },
 698                 { "tcp_no_listener",            KSTAT_DATA_UINT64, 0 },
 699                 { "tcp_listendrop",             KSTAT_DATA_UINT64, 0 },
 700                 { "tcp_listendropq0",           KSTAT_DATA_UINT64, 0 },
 701                 { "tcp_wsrv_called",            KSTAT_DATA_UINT64, 0 },
 702                 { "tcp_flwctl_on",              KSTAT_DATA_UINT64, 0 },
 703                 { "tcp_timer_fire_early",       KSTAT_DATA_UINT64, 0 },
 704                 { "tcp_timer_fire_miss",        KSTAT_DATA_UINT64, 0 },
 705                 { "tcp_zcopy_on",               KSTAT_DATA_UINT64, 0 },
 706                 { "tcp_zcopy_off",              KSTAT_DATA_UINT64, 0 },
 707                 { "tcp_zcopy_backoff",          KSTAT_DATA_UINT64, 0 },
 708                 { "tcp_fusion_flowctl",         KSTAT_DATA_UINT64, 0 },
 709                 { "tcp_fusion_backenabled",     KSTAT_DATA_UINT64, 0 },
 710                 { "tcp_fusion_urg",             KSTAT_DATA_UINT64, 0 },
 711                 { "tcp_fusion_putnext",         KSTAT_DATA_UINT64, 0 },
 712                 { "tcp_fusion_unfusable",       KSTAT_DATA_UINT64, 0 },
 713                 { "tcp_fusion_aborted",         KSTAT_DATA_UINT64, 0 },
 714                 { "tcp_fusion_unqualified",     KSTAT_DATA_UINT64, 0 },
 715                 { "tcp_fusion_rrw_busy",        KSTAT_DATA_UINT64, 0 },
 716                 { "tcp_fusion_rrw_msgcnt",      KSTAT_DATA_UINT64, 0 },
 717                 { "tcp_fusion_rrw_plugged",     KSTAT_DATA_UINT64, 0 },
 718                 { "tcp_in_ack_unsent_drop",     KSTAT_DATA_UINT64, 0 },
 719                 { "tcp_sock_fallback",          KSTAT_DATA_UINT64, 0 },
 720                 { "tcp_lso_enabled",            KSTAT_DATA_UINT64, 0 },
 721                 { "tcp_lso_disabled",           KSTAT_DATA_UINT64, 0 },
 722                 { "tcp_lso_times",              KSTAT_DATA_UINT64, 0 },
 723                 { "tcp_lso_pkt_out",            KSTAT_DATA_UINT64, 0 },
 724                 { "tcp_listen_cnt_drop",        KSTAT_DATA_UINT64, 0 },
 725                 { "tcp_listen_mem_drop",        KSTAT_DATA_UINT64, 0 },
 726                 { "tcp_zwin_mem_drop",          KSTAT_DATA_UINT64, 0 },
 727                 { "tcp_zwin_ack_syn",           KSTAT_DATA_UINT64, 0 },
 728                 { "tcp_rst_unsent",             KSTAT_DATA_UINT64, 0 },
 729                 { "tcp_reclaim_cnt",            KSTAT_DATA_UINT64, 0 },
 730                 { "tcp_reass_timeout",          KSTAT_DATA_UINT64, 0 },
 731 #ifdef TCP_DEBUG_COUNTER
 732                 { "tcp_time_wait",              KSTAT_DATA_UINT64, 0 },
 733                 { "tcp_rput_time_wait",         KSTAT_DATA_UINT64, 0 },
 734                 { "tcp_detach_time_wait",       KSTAT_DATA_UINT64, 0 },
 735                 { "tcp_timeout_calls",          KSTAT_DATA_UINT64, 0 },
 736                 { "tcp_timeout_cached_alloc",   KSTAT_DATA_UINT64, 0 },
 737                 { "tcp_timeout_cancel_reqs",    KSTAT_DATA_UINT64, 0 },
 738                 { "tcp_timeout_canceled",       KSTAT_DATA_UINT64, 0 },
 739                 { "tcp_timermp_freed",          KSTAT_DATA_UINT64, 0 },
 740                 { "tcp_push_timer_cnt",         KSTAT_DATA_UINT64, 0 },
 741                 { "tcp_ack_timer_cnt",          KSTAT_DATA_UINT64, 0 },
 742 #endif
 743         };
 744 
 745         ksp = kstat_create_netstack(TCP_MOD_NAME, stackid, "tcpstat", "net",
 746             KSTAT_TYPE_NAMED, sizeof (template) / sizeof (kstat_named_t), 0,
 747             stackid);
 748 
 749         if (ksp == NULL)
 750                 return (NULL);
 751 
 752         bcopy(&template, ksp->ks_data, sizeof (template));
 753         ksp->ks_private = (void *)(uintptr_t)stackid;
 754         ksp->ks_update = tcp_kstat2_update;
 755 
 756         /*
 757          * If this is an exclusive netstack for a local zone, the global zone
 758          * should still be able to read the kstat.
 759          */
 760         if (stackid != GLOBAL_NETSTACKID)
 761                 kstat_zone_add(ksp, GLOBAL_ZONEID);




 435                                 return (0);
 436                         /* TODO: delete entry defined by tce */
 437                         return (1);
 438                 default:
 439                         return (0);
 440                 }
 441         default:
 442                 return (1);
 443         }
 444 }
 445 
 446 /*
 447  * TCP Kstats implementation
 448  */
 449 void *
 450 tcp_kstat_init(netstackid_t stackid)
 451 {
 452         kstat_t *ksp;
 453 
 454         tcp_named_kstat_t template = {
 455                 { "rtoAlgorithm",       KSTAT_DATA_INT32, {{0}} },
 456                 { "rtoMin",             KSTAT_DATA_INT32, {{0}} },
 457                 { "rtoMax",             KSTAT_DATA_INT32, {{0}} },
 458                 { "maxConn",            KSTAT_DATA_INT32, {{0}} },
 459                 { "activeOpens",        KSTAT_DATA_UINT32, {{0}} },
 460                 { "passiveOpens",       KSTAT_DATA_UINT32, {{0}} },
 461                 { "attemptFails",       KSTAT_DATA_UINT32, {{0}} },
 462                 { "estabResets",        KSTAT_DATA_UINT32, {{0}} },
 463                 { "currEstab",          KSTAT_DATA_UINT32, {{0}} },
 464                 { "inSegs",             KSTAT_DATA_UINT64, {{0}} },
 465                 { "outSegs",            KSTAT_DATA_UINT64, {{0}} },
 466                 { "retransSegs",        KSTAT_DATA_UINT32, {{0}} },
 467                 { "connTableSize",      KSTAT_DATA_INT32, {{0}} },
 468                 { "outRsts",            KSTAT_DATA_UINT32, {{0}} },
 469                 { "outDataSegs",        KSTAT_DATA_UINT32, {{0}} },
 470                 { "outDataBytes",       KSTAT_DATA_UINT32, {{0}} },
 471                 { "retransBytes",       KSTAT_DATA_UINT32, {{0}} },
 472                 { "outAck",             KSTAT_DATA_UINT32, {{0}} },
 473                 { "outAckDelayed",      KSTAT_DATA_UINT32, {{0}} },
 474                 { "outUrg",             KSTAT_DATA_UINT32, {{0}} },
 475                 { "outWinUpdate",       KSTAT_DATA_UINT32, {{0}} },
 476                 { "outWinProbe",        KSTAT_DATA_UINT32, {{0}} },
 477                 { "outControl",         KSTAT_DATA_UINT32, {{0}} },
 478                 { "outFastRetrans",     KSTAT_DATA_UINT32, {{0}} },
 479                 { "inAckSegs",          KSTAT_DATA_UINT32, {{0}} },
 480                 { "inAckBytes",         KSTAT_DATA_UINT32, {{0}} },
 481                 { "inDupAck",           KSTAT_DATA_UINT32, {{0}} },
 482                 { "inAckUnsent",        KSTAT_DATA_UINT32, {{0}} },
 483                 { "inDataInorderSegs",  KSTAT_DATA_UINT32, {{0}} },
 484                 { "inDataInorderBytes", KSTAT_DATA_UINT32, {{0}} },
 485                 { "inDataUnorderSegs",  KSTAT_DATA_UINT32, {{0}} },
 486                 { "inDataUnorderBytes", KSTAT_DATA_UINT32, {{0}} },
 487                 { "inDataDupSegs",      KSTAT_DATA_UINT32, {{0}} },
 488                 { "inDataDupBytes",     KSTAT_DATA_UINT32, {{0}} },
 489                 { "inDataPartDupSegs",  KSTAT_DATA_UINT32, {{0}} },
 490                 { "inDataPartDupBytes", KSTAT_DATA_UINT32, {{0}} },
 491                 { "inDataPastWinSegs",  KSTAT_DATA_UINT32, {{0}} },
 492                 { "inDataPastWinBytes", KSTAT_DATA_UINT32, {{0}} },
 493                 { "inWinProbe",         KSTAT_DATA_UINT32, {{0}} },
 494                 { "inWinUpdate",        KSTAT_DATA_UINT32, {{0}} },
 495                 { "inClosed",           KSTAT_DATA_UINT32, {{0}} },
 496                 { "rttUpdate",          KSTAT_DATA_UINT32, {{0}} },
 497                 { "rttNoUpdate",        KSTAT_DATA_UINT32, {{0}} },
 498                 { "timRetrans",         KSTAT_DATA_UINT32, {{0}} },
 499                 { "timRetransDrop",     KSTAT_DATA_UINT32, {{0}} },
 500                 { "timKeepalive",       KSTAT_DATA_UINT32, {{0}} },
 501                 { "timKeepaliveProbe",  KSTAT_DATA_UINT32, {{0}} },
 502                 { "timKeepaliveDrop",   KSTAT_DATA_UINT32, {{0}} },
 503                 { "listenDrop",         KSTAT_DATA_UINT32, {{0}} },
 504                 { "listenDropQ0",       KSTAT_DATA_UINT32, {{0}} },
 505                 { "halfOpenDrop",       KSTAT_DATA_UINT32, {{0}} },
 506                 { "outSackRetransSegs", KSTAT_DATA_UINT32, {{0}} },
 507                 { "connTableSize6",     KSTAT_DATA_INT32, {{0}} }
 508         };
 509 
 510         ksp = kstat_create_netstack(TCP_MOD_NAME, stackid, TCP_MOD_NAME, "mib2",
 511             KSTAT_TYPE_NAMED, NUM_OF_FIELDS(tcp_named_kstat_t), 0, stackid);
 512 
 513         if (ksp == NULL)
 514                 return (NULL);
 515 
 516         template.rtoAlgorithm.value.ui32 = 4;
 517         template.maxConn.value.i32 = -1;
 518 
 519         bcopy(&template, ksp->ks_data, sizeof (template));
 520         ksp->ks_update = tcp_kstat_update;
 521         ksp->ks_private = (void *)(uintptr_t)stackid;
 522 
 523         /*
 524          * If this is an exclusive netstack for a local zone, the global zone
 525          * should still be able to read the kstat.
 526          */
 527         if (stackid != GLOBAL_NETSTACKID)


 674         ksp->ks_data = (void *)tcp_g_statp;
 675 
 676         kstat_install(ksp);
 677         return (ksp);
 678 }
 679 
 680 void
 681 tcp_g_kstat_fini(kstat_t *ksp)
 682 {
 683         if (ksp != NULL) {
 684                 kstat_delete(ksp);
 685         }
 686 }
 687 
 688 void *
 689 tcp_kstat2_init(netstackid_t stackid)
 690 {
 691         kstat_t *ksp;
 692 
 693         tcp_stat_t template = {
 694                 { "tcp_time_wait_syn_success",  KSTAT_DATA_UINT64, {{0}} },
 695                 { "tcp_clean_death_nondetached",        KSTAT_DATA_UINT64, {{0}} },
 696                 { "tcp_eager_blowoff_q",        KSTAT_DATA_UINT64, {{0}} },
 697                 { "tcp_eager_blowoff_q0",       KSTAT_DATA_UINT64, {{0}} },
 698                 { "tcp_no_listener",            KSTAT_DATA_UINT64, {{0}} },
 699                 { "tcp_listendrop",             KSTAT_DATA_UINT64, {{0}} },
 700                 { "tcp_listendropq0",           KSTAT_DATA_UINT64, {{0}} },
 701                 { "tcp_wsrv_called",            KSTAT_DATA_UINT64, {{0}} },
 702                 { "tcp_flwctl_on",              KSTAT_DATA_UINT64, {{0}} },
 703                 { "tcp_timer_fire_early",       KSTAT_DATA_UINT64, {{0}} },
 704                 { "tcp_timer_fire_miss",        KSTAT_DATA_UINT64, {{0}} },
 705                 { "tcp_zcopy_on",               KSTAT_DATA_UINT64, {{0}} },
 706                 { "tcp_zcopy_off",              KSTAT_DATA_UINT64, {{0}} },
 707                 { "tcp_zcopy_backoff",          KSTAT_DATA_UINT64, {{0}} },
 708                 { "tcp_fusion_flowctl",         KSTAT_DATA_UINT64, {{0}} },
 709                 { "tcp_fusion_backenabled",     KSTAT_DATA_UINT64, {{0}} },
 710                 { "tcp_fusion_urg",             KSTAT_DATA_UINT64, {{0}} },
 711                 { "tcp_fusion_putnext",         KSTAT_DATA_UINT64, {{0}} },
 712                 { "tcp_fusion_unfusable",       KSTAT_DATA_UINT64, {{0}} },
 713                 { "tcp_fusion_aborted",         KSTAT_DATA_UINT64, {{0}} },
 714                 { "tcp_fusion_unqualified",     KSTAT_DATA_UINT64, {{0}} },
 715                 { "tcp_fusion_rrw_busy",        KSTAT_DATA_UINT64, {{0}} },
 716                 { "tcp_fusion_rrw_msgcnt",      KSTAT_DATA_UINT64, {{0}} },
 717                 { "tcp_fusion_rrw_plugged",     KSTAT_DATA_UINT64, {{0}} },
 718                 { "tcp_in_ack_unsent_drop",     KSTAT_DATA_UINT64, {{0}} },
 719                 { "tcp_sock_fallback",          KSTAT_DATA_UINT64, {{0}} },
 720                 { "tcp_lso_enabled",            KSTAT_DATA_UINT64, {{0}} },
 721                 { "tcp_lso_disabled",           KSTAT_DATA_UINT64, {{0}} },
 722                 { "tcp_lso_times",              KSTAT_DATA_UINT64, {{0}} },
 723                 { "tcp_lso_pkt_out",            KSTAT_DATA_UINT64, {{0}} },
 724                 { "tcp_listen_cnt_drop",        KSTAT_DATA_UINT64, {{0}} },
 725                 { "tcp_listen_mem_drop",        KSTAT_DATA_UINT64, {{0}} },
 726                 { "tcp_zwin_mem_drop",          KSTAT_DATA_UINT64, {{0}} },
 727                 { "tcp_zwin_ack_syn",           KSTAT_DATA_UINT64, {{0}} },
 728                 { "tcp_rst_unsent",             KSTAT_DATA_UINT64, {{0}} },
 729                 { "tcp_reclaim_cnt",            KSTAT_DATA_UINT64, {{0}} },
 730                 { "tcp_reass_timeout",          KSTAT_DATA_UINT64, {{0}} },
 731 #ifdef TCP_DEBUG_COUNTER
 732                 { "tcp_time_wait",              KSTAT_DATA_UINT64, {{0}} },
 733                 { "tcp_rput_time_wait",         KSTAT_DATA_UINT64, {{0}} },
 734                 { "tcp_detach_time_wait",       KSTAT_DATA_UINT64, {{0}} },
 735                 { "tcp_timeout_calls",          KSTAT_DATA_UINT64, {{0}} },
 736                 { "tcp_timeout_cached_alloc",   KSTAT_DATA_UINT64, {{0}} },
 737                 { "tcp_timeout_cancel_reqs",    KSTAT_DATA_UINT64, {{0}} },
 738                 { "tcp_timeout_canceled",       KSTAT_DATA_UINT64, {{0}} },
 739                 { "tcp_timermp_freed",          KSTAT_DATA_UINT64, {{0}} },
 740                 { "tcp_push_timer_cnt",         KSTAT_DATA_UINT64, {{0}} },
 741                 { "tcp_ack_timer_cnt",          KSTAT_DATA_UINT64, {{0}} },
 742 #endif
 743         };
 744 
 745         ksp = kstat_create_netstack(TCP_MOD_NAME, stackid, "tcpstat", "net",
 746             KSTAT_TYPE_NAMED, sizeof (template) / sizeof (kstat_named_t), 0,
 747             stackid);
 748 
 749         if (ksp == NULL)
 750                 return (NULL);
 751 
 752         bcopy(&template, ksp->ks_data, sizeof (template));
 753         ksp->ks_private = (void *)(uintptr_t)stackid;
 754         ksp->ks_update = tcp_kstat2_update;
 755 
 756         /*
 757          * If this is an exclusive netstack for a local zone, the global zone
 758          * should still be able to read the kstat.
 759          */
 760         if (stackid != GLOBAL_NETSTACKID)
 761                 kstat_zone_add(ksp, GLOBAL_ZONEID);