Print this page
10472 Limit number of multicast NCEs
Reviewed by: Cody Peter Mello <melloc@writev.io>
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip.h
          +++ new/usr/src/uts/common/inet/ip.h
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 1990 Mentat Inc.
  24   24   * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  25      - * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  26   25   * Copyright 2017 Nexenta Systems, Inc.
  27   26   * Copyright 2017 OmniTI Computer Consulting, Inc. All rights reserved.
       27 + * Copyright 2019, Joyent, Inc.
  28   28   */
  29   29  
  30   30  #ifndef _INET_IP_H
  31   31  #define _INET_IP_H
  32   32  
  33   33  #ifdef  __cplusplus
  34   34  extern "C" {
  35   35  #endif
  36   36  
  37   37  #include <sys/isa_defs.h>
↓ open down ↓ 1663 lines elided ↑ open up ↑
1701 1701                  ill_fragtimer_needrestart : 1,
1702 1702                  ill_manual_token : 1,   /* system won't override ill_token */
1703 1703                  /*
1704 1704                   * ill_manual_linklocal : system will not change the
1705 1705                   * linklocal whenever ill_token changes.
1706 1706                   */
1707 1707                  ill_manual_linklocal : 1,
1708 1708  
1709 1709                  ill_manual_dst_linklocal : 1, /* same for pt-pt dst linklocal */
1710 1710  
1711      -                ill_pad_bit_31 : 27;
     1711 +                ill_mcast_ncec_cleanup : 1,     /* Reaping mcast ncecs. */
     1712 +                ill_pad_bit_31 : 26;
1712 1713  
1713 1714          /*
1714 1715           * Used in SIOCSIFMUXID and SIOCGIFMUXID for 'ifconfig unplumb'.
1715 1716           */
1716 1717          int     ill_muxid;              /* muxid returned from plink */
1717 1718  
1718 1719          /* Used for IP frag reassembly throttling on a per ILL basis.  */
1719 1720          uint_t  ill_ipf_gen;            /* Generation of next fragment queue */
1720 1721          uint_t  ill_frag_count;         /* Count of all reassembly mblk bytes */
1721 1722          uint_t  ill_frag_free_num_pkts;  /* num of fragmented packets to free */
↓ open down ↓ 41 lines elided ↑ open up ↑
1763 1764          /*
1764 1765           * We have 4 phys_addr_req's sent down. This field keeps track
1765 1766           * of which one is pending.
1766 1767           */
1767 1768          t_uscalar_t     ill_phys_addr_pend; /* which dl_phys_addr_req pending */
1768 1769          /*
1769 1770           * Used to save errors that occur during plumbing
1770 1771           */
1771 1772          uint_t          ill_ifname_pending_err;
1772 1773          avl_node_t      ill_avl_byppa; /* avl node based on ppa */
     1774 +        uint_t          ill_mcast_nces; /* Number of NCEs that are multicast. */
1773 1775          list_t          ill_nce; /* pointer to nce_s list */
1774 1776          uint_t          ill_refcnt;     /* active refcnt by threads */
1775 1777          uint_t          ill_ire_cnt;    /* ires associated with this ill */
1776 1778          kcondvar_t      ill_cv;
1777 1779          uint_t          ill_ncec_cnt;   /* ncecs associated with this ill */
1778 1780          uint_t          ill_nce_cnt;    /* nces associated with this ill */
1779 1781          uint_t          ill_waiters;    /* threads waiting in ipsq_enter */
1780 1782          /*
1781 1783           * Contains the upper read queue pointer of the module immediately
1782 1784           * beneath IP.  This field allows IP to validate sub-capability
↓ open down ↓ 150 lines elided ↑ open up ↑
1933 1935   * ill_nd_lla                   ipsq + down ill         only when ill is up
1934 1936   * ill_nd_lla_len               ipsq + down ill         only when ill is up
1935 1937   * ill_phys_addr_pend           ipsq + down ill         only when ill is up
1936 1938   * ill_ifname_pending_err       ipsq                    ipsq
1937 1939   * ill_avl_byppa                ipsq, ill_g_lock        write once
1938 1940   *
1939 1941   * ill_fastpath_list            ill_lock                ill_lock
1940 1942   * ill_refcnt                   ill_lock                ill_lock
1941 1943   * ill_ire_cnt                  ill_lock                ill_lock
1942 1944   * ill_cv                       ill_lock                ill_lock
     1945 + * ill_mcast_nces               ill_lock                ill_lock
1943 1946   * ill_ncec_cnt                 ill_lock                ill_lock
1944 1947   * ill_nce_cnt                  ill_lock                ill_lock
1945 1948   * ill_ilm_cnt                  ill_lock                ill_lock
1946 1949   * ill_src_ipif                 ill_g_lock              ill_g_lock
1947 1950   * ill_trace                    ill_lock                ill_lock
1948 1951   * ill_usesrc_grp_next          ill_g_usesrc_lock       ill_g_usesrc_lock
1949 1952   * ill_dhcpinit                 atomics                 atomics
1950 1953   * ill_flownotify_mh            write once              write once
1951 1954   * ill_capab_pending_cnt        ipsq                    ipsq
1952 1955   * ill_ipallmulti_cnt           ill_lock                ill_lock
↓ open down ↓ 1835 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX