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>

@@ -20,13 +20,13 @@
  */
 
 /*
  * Copyright (c) 1990 Mentat Inc.
  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  * Copyright 2017 Nexenta Systems, Inc.
  * Copyright 2017 OmniTI Computer Consulting, Inc. All rights reserved.
+ * Copyright 2019, Joyent, Inc.
  */
 
 #ifndef _INET_IP_H
 #define _INET_IP_H
 

@@ -1706,11 +1706,12 @@
                  */
                 ill_manual_linklocal : 1,
 
                 ill_manual_dst_linklocal : 1, /* same for pt-pt dst linklocal */
 
-                ill_pad_bit_31 : 27;
+                ill_mcast_ncec_cleanup : 1,     /* Reaping mcast ncecs. */
+                ill_pad_bit_31 : 26;
 
         /*
          * Used in SIOCSIFMUXID and SIOCGIFMUXID for 'ifconfig unplumb'.
          */
         int     ill_muxid;              /* muxid returned from plink */

@@ -1768,10 +1769,11 @@
         /*
          * Used to save errors that occur during plumbing
          */
         uint_t          ill_ifname_pending_err;
         avl_node_t      ill_avl_byppa; /* avl node based on ppa */
+        uint_t          ill_mcast_nces; /* Number of NCEs that are multicast. */
         list_t          ill_nce; /* pointer to nce_s list */
         uint_t          ill_refcnt;     /* active refcnt by threads */
         uint_t          ill_ire_cnt;    /* ires associated with this ill */
         kcondvar_t      ill_cv;
         uint_t          ill_ncec_cnt;   /* ncecs associated with this ill */

@@ -1938,10 +1940,11 @@
  *
  * ill_fastpath_list            ill_lock                ill_lock
  * ill_refcnt                   ill_lock                ill_lock
  * ill_ire_cnt                  ill_lock                ill_lock
  * ill_cv                       ill_lock                ill_lock
+ * ill_mcast_nces               ill_lock                ill_lock
  * ill_ncec_cnt                 ill_lock                ill_lock
  * ill_nce_cnt                  ill_lock                ill_lock
  * ill_ilm_cnt                  ill_lock                ill_lock
  * ill_src_ipif                 ill_g_lock              ill_g_lock
  * ill_trace                    ill_lock                ill_lock