Ping packet
Here, we define functions for QUIC packet packet protection.
include ping_byte_stream
include collections
include ping_frame
module ping_array = {
instance idx : unbounded_sequence
instance arr : array(idx,stream_data)
}
object ping_packet = {
type this = struct {
payload : frame.arr
}
instance idx : unbounded_sequence
instance arr : array(idx,this)
}
function ping_length : stream_pos
function current_time : milliseconds
relation enough_wait
action ping_packet_event(src:ip.endpoint,dst:ip.endpoint,pkt:ping_packet) = {}
import action show_current_time(now:milliseconds)
around ping_packet_event(src:ip.endpoint,dst:ip.endpoint,pkt:ping_packet) {
require num_queued_frames = 2; # [7]
require pkt.payload = queued_frames;
...
queued_frames := frame.arr.empty;
num_queued_frames := 0;
}