Mercurial > illumos > illumos-gate
changeset 3694:e4b684010e8d
6512188 IPMP creates broadcast routes with Maximum Fragment Size of 1536
author | rk129064 |
---|---|
date | Thu, 22 Feb 2007 05:34:11 -0800 |
parents | 0500530f987d |
children | bb3dfeb272c9 |
files | usr/src/uts/common/inet/ip/ip_if.c |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/inet/ip/ip_if.c Wed Feb 21 17:37:15 2007 -0800 +++ b/usr/src/uts/common/inet/ip/ip_if.c Thu Feb 22 05:34:11 2007 -0800 @@ -15399,6 +15399,7 @@ uint64_t match_flags; uint64_t phyi_flags; boolean_t fallback = B_FALSE; + uint_t max_frag; ire = ire_ctable_lookup(addr, 0, IRE_BROADCAST, NULL, ALL_ZONES, NULL, MATCH_IRE_TYPE, ipst); @@ -15620,6 +15621,11 @@ * etc. Need to dup them. ditto in ill_bcast_delete_and_add */ + /* Set the max_frag before adding the ire */ + max_frag = *new_lb_ire->ire_max_fragp; + new_lb_ire->ire_max_fragp = NULL; + new_lb_ire->ire_max_frag = max_frag; + /* Add the new ire's. Insert at *irep */ new_lb_ire->ire_bucket = clear_ire->ire_bucket; ire1 = *irep; @@ -15636,6 +15642,11 @@ new_lb_ire->ire_ipif->ipif_ire_cnt++; if (clear_ire_stq != NULL) { + /* Set the max_frag before adding the ire */ + max_frag = *new_nlb_ire->ire_max_fragp; + new_nlb_ire->ire_max_fragp = NULL; + new_nlb_ire->ire_max_frag = max_frag; + new_nlb_ire->ire_bucket = clear_ire->ire_bucket; irep = &new_lb_ire->ire_next; /* Add the new ire. Insert at *irep */