HI Bruce:????How about this, I send you the test program , then you can?demonstrate?the?bugs .? ? If you?demonstrate?the?bugs ,then you can get the lpm bug's fix into?the?release first.????????Further ,we explicitly discuss the details about the unit test and make it a patch of dpdk.????Thank you very much! Regards Na Na
???? ------------------------------------------------------------------????Bruce Richardson <bruce.richardson at intel.com>?????2015?10?29?(???) 18:18??????(??) <nana.nn at alibaba-inc.com>????Jijiang Liu <jijiang.liu at intel.com>?dev <dev at dpdk.org>????Re: [dpdk-dev] [PATCH] lib/lpm:fix two issues in the delete_depth_small() On?Thu,?Oct?29,?2015?at?10:41:45AM?+0800,?nana.nn?wrote: >?Hi?Bruce: >??Should?I?send?the?test?unit?as?a?DPDK?patch,?or?just?the?program?for?you?to?demonstrate?the?bugs?? >????????? >?? >??Thank?you?very?much! >? >? >?Regards >? >?Na?Na >? A?patch?to?add?a?unit?test?for?the?bug?would?be?best. /Bruce >? >? >? >?On?Oct?28,?2015,?at?10:40?PM,?Bruce?Richardson?<bruce.richardson at >intel.com>?wrote: >? >?>?On?Wed,?Oct?28,?2015?at?11:44:15AM?+0800,?Jijiang?Liu?wrote: >?>>?Fix?two?issues?in?the?delete_depth_small()?function. >?>>? >?>>?1>?The?control?is?not?strict?in?this?function. >?>>? >?>>?In?the?following?structure, >?>>?struct?rte_lpm_tbl24_entry?{ >?>>????????union?{ >?>>????????????????uint8_t?next_hop; >?>>????????????????uint8_t?tbl8_gindex; >?>>????????}; >?>>?????uint8_t?ext_entry?:1; >?>>?} >?>>? >?>>?When?ext_entry?=?0,?use?next_hop.only?to?process?rte_lpm_tbl24_entry. >?>>? >?>>?When?ext_entry?=?1,?use?tbl8_gindex?to?process?the?rte_lpm_tbl8_entry. >?>>? >?>>?When?using?LPM24?+?8?algorithm,?it?will?use?ext_entry?to?decide?to?process?rte_lpm_tbl24_entry?structure?or?rte_lpm_tbl8_entry?structure.? >?>>?If?a?route?is?deleted,?the?prefix?of?previous?route?is?used?to?override?the?deleted?route.?when?(lpm->tbl24[i].ext_entry?==?0?&&?lpm->tbl24[i].depth?>?depth)? >?>>?it?should?be?ignored,?but?due?to?the?incorrect?logic,?the?next_hop?is?used?as?tbl8_gindex?and?will?process?the?rte_lpm_tbl8_entry. >?>>? >?>>?2>?Initialization?of?rte_lpm_tbl8_entry?is?incorrect?in?this?function? >?>>? >?>>?In?this?function,?use?new?rte_lpm_tbl8_entry?we?call?A?to?replace?the?old?rte_lpm_tbl8_entry.?But?the?valid_group?do?not?set?VALID,?so?it?will?be?INVALID. >?>>?Then?when?adding?a?new?route?which?depth?is?>?24,the?tbl8_alloc()?function?will?search?the?rte_lpm_tbl8_entrys?to?find?INVALID?valid_group,? >?>>?and?it?will?return?the?A?to?the?add_depth_big?function,?so?A's?data?is?overridden. >?>>? >?>>?Signed-off-by:?NaNa?<nana.nn at alibaba-inc.com> >?>>? >?>? >?>?Hi?NaNa,?Jijiang, >?>? >?>?since?this?patch?contains?two?separate?fixes,?it?would?be?better?split?into >?>?two?separate?patches,?one?for?each?fix.?Also,?please?add?a?"Fixes"?line?to >?>?the?commit?log. >?>? >?>?Are?there?still?plans?for?a?unit?test?to?demonstrate?the?bug(s)?and?make?it?easy >?>?for?us?to?verify?the?fix? >?>? >?>?Regards, >?>?/Bruce >?