src/atsc3_mmt_mpu_utils.c
void udp_flow_force_negative_mpu_discontinuity_value(udp_flow_packet_id_mpu_sequence_tuple_t* udp_flow_packet_id_mpu_sequence_matching_pkt_id, uint32_t new_old_mpu_sequence_number_to_force, mmtp_payload_fragments_union_t* mmtp_packet_fragments_to_evict) {
	uint32_t eviction_range_start = udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number_evict_range_start;
	uint32_t eviction_range_end = mmtp_packet_fragments_to_evict->mmtp_mpu_type_packet_header.mpu_sequence_number;

	atsc3_mmt_mpu_clear_data_unit_from_packet_subflow(mmtp_packet_fragments_to_evict, eviction_range_start, eviction_range_end);

	//for(int i=eviction_range_start)

		//force the "old" packet id
	udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number = new_old_mpu_sequence_number_to_force;

	udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number_evict_range_start = new_old_mpu_sequence_number_to_force;
	udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number_last_refragmentation_flush = new_old_mpu_sequence_number_to_force;

	udp_flow_reset_negative_mpu_discontinuity_counters(udp_flow_packet_id_mpu_sequence_matching_pkt_id);


}
//this is important as we need to clean up our pending eviction fragments and our current mpu_sequence_number for a clean rollover
this is important as we need to clean up our pending eviction fragments and our current mpu_sequence_number for a clean rollover
this is important as we need to clean up our pending eviction fragments and our current mpu_sequence_number for a clean rollover
void udp_flow_force_negative_mpu_discontinuity_value(udp_flow_packet_id_mpu_sequence_tuple_t* udp_flow_packet_id_mpu_sequence_matching_pkt_id, uint32_t new_old_mpu_sequence_number_to_force, mmtp_payload_fragments_union_t* mmtp_packet_fragments_to_evict) {
	uint32_t eviction_range_start = udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number_evict_range_start;
	uint32_t eviction_range_end = mmtp_packet_fragments_to_evict->mmtp_mpu_type_packet_header.mpu_sequence_number;
	atsc3_mmt_mpu_clear_data_unit_from_packet_subflow(mmtp_packet_fragments_to_evict, eviction_range_start, eviction_range_end);
	udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number = new_old_mpu_sequence_number_to_force;
	udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number_evict_range_start = new_old_mpu_sequence_number_to_force;
	udp_flow_packet_id_mpu_sequence_matching_pkt_id->mpu_sequence_number_last_refragmentation_flush = new_old_mpu_sequence_number_to_force;
	udp_flow_reset_negative_mpu_discontinuity_counters(udp_flow_packet_id_mpu_sequence_matching_pkt_id);
}
void udp_flow_force_negative_mpu_discontinuity_value ( udp_flow_packet_id_mpu_sequence_tuple_t * udp_flow_packet_id_mpu_sequence_matching_pkt_id , uint32_t new_old_mpu_sequence_number_to_force , mmtp_payload_fragments_union_t * mmtp_packet_fragments_to_evict ) { uint32_t eviction_range_start = udp_flow_packet_id_mpu_sequence_matching_pkt_id -> mpu_sequence_number_evict_range_start ; uint32_t eviction_range_end = mmtp_packet_fragments_to_evict -> mmtp_mpu_type_packet_header . mpu_sequence_number ; atsc3_mmt_mpu_clear_data_unit_from_packet_subflow ( mmtp_packet_fragments_to_evict , eviction_range_start , eviction_range_end ) ; udp_flow_packet_id_mpu_sequence_matching_pkt_id -> mpu_sequence_number = new_old_mpu_sequence_number_to_force ; udp_flow_packet_id_mpu_sequence_matching_pkt_id -> mpu_sequence_number_evict_range_start = new_old_mpu_sequence_number_to_force ; udp_flow_packet_id_mpu_sequence_matching_pkt_id -> mpu_sequence_number_last_refragmentation_flush = new_old_mpu_sequence_number_to_force ; udp_flow_reset_negative_mpu_discontinuity_counters ( udp_flow_packet_id_mpu_sequence_matching_pkt_id ) ; }
this is important as we need to clean up our pending eviction fragments and our current mpu_sequence_number for a clean rollover
this is important as we need to clean up our pending eviction fragments and our current mpu_sequence_number for a clean rollover
//for(int i=eviction_range_start) //force the "old" packet id