Xufeng Zhang <xufengzhang.main@xxxxxxxxx> wrote: >On 7/25/12, Vlad Yasevich <vyasevich@xxxxxxxxx> wrote: >>> And after take a moment to look into the relative codes, I think we >>> can implement it >>> by below way: >>> 1). Add a flag(isi_err_needed) in the embedded struct peer of struct >>> struct sctp_association >>> just like sack_needed flag. >>> 2). When "invalid stream identifier" ERROR happens in >sctp_eat_data() >>> function, we just >>> set isi_err_needed flag and don't create ERROR chunk and also don't >>> insert SCTP_CMD_REPLY command. >>> 3). In sctp_gen_sack() function, we create ERROR chunk and also >insert >>> SCTP_CMD_REPLY command if isi_err_needed flag is set. >>> >>> Is this way proper? >>> >> >> So, I looked at the code, and it looks very simple to do. We already >> return a specific status from sctp_eat_data() when the error was >> generated. All you have to do is take the code that generates the >error >> and adds it to the command list and give it its own small function >that >> you can then call if SCTP_IERROR_BAD_STREAM error was returned. > >No, it will still has the same problem by just doing this. >SCTP_CMD_GEN_SACK command actually don't enqueue SACK to outqueue, >sctp_gen_sack() do this things when processing SCTP_CMD_GEN_SACK >command >in sctp_cmd_interpreter(). >So it's not enough if we just insert SCTP_ERROR_INV_STRM command after >sctp_eat_data() return SCTP_IERROR_BAD_STREAM in >sctp_sf_eat_data_6_2(). > > All you have to do is change the order of side effect commands and the above is a guide. Ill prototype it tomorrow when I have time. -vlad > >Thanks, >Xufeng Zhang > >> >> -vlad >> >>> >>> Thanks, >>> Xufeng Zhang >>>> >>>> >>>> >>>> Thanks, >>>> Xufeng Zhang >>>>> >>>>> -vlad >>>>>> >>>>>> Thanks, >>>>>> Xufeng Zhang >>>>>>> >>>>>>> -vlad >>>>> >>>>> >>>>> -- >>>>> Sent from my Android phone with SkitMail. Please excuse my >brevity. >>>>> >>>> >> >> >> -- Sent from my Android phone with SkitMail. Please excuse my brevity. -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html