N01. If (DA.Argument != 0) { N02. If (IPv6 Hop Limit <= 1) { N03. Send an ICMP Time Exceeded message to the Source Address with Code 0 (Hop limit exceeded in transit), interrupt packet processing, and discard the packet. N04. } N05. Copy DA.Argument into the bits [LBL..(LBL+AL-1)] of the Destination Address. N06. Set the bits [(LBL+AL)..127] of the Destination Address to zero. N07. Decrement IPv6 Hop Limit by 1. N08. Submit the packet to the IPv6 module for transmission to the new destination via a member of J. N09. } S02. If (Segments Left == 0) { S03. Stop processing the SRH and proceed to process the next header in the packet, whose type is identified by the Next Header field in the routing header. S04. } S05. If (IPv6 Hop Limit <= 1) { S06. Send an ICMP Time Exceeded message to the Source Address with Code 0 (Hop limit exceeded in transit), interrupt packet processing, and discard the packet. S07. } S08. max_LE = (Hdr Ext Len / 2) - 1 S09. If ((Last Entry > max_LE) or (Segments Left > Last Entry+1)) { S10. Send an ICMP Parameter Problem to the Source Address with Code 0 (Erroneous header field encountered) and Pointer set to the Segments Left field, interrupt packet processing, and discard the packet. S11. } S12. Decrement IPv6 Hop Limit by 1. S13. Decrement Segments Left by 1. S14. Update IPv6 DA with Segment List[Segments Left]. S15. Submit the packet to the IPv6 module for transmission to the new destination via a member of J.