зеркало из https://github.com/microsoft/ivy.git
working on fraft-17
This commit is contained in:
Родитель
5d023aa742
Коммит
ca6b5639e4
|
@ -1408,6 +1408,30 @@ object frame = { ...
|
|||
}
|
||||
}
|
||||
|
||||
# Stream blocked frames indicate that sender wishes to opena stream beyond current limit
|
||||
# on streams of a giev kind.
|
||||
#
|
||||
# Requirements
|
||||
#
|
||||
# - Connection must be established
|
||||
#
|
||||
# Effects
|
||||
#
|
||||
# (None)
|
||||
|
||||
object frame = { ...
|
||||
object stream_id_blocked = { ...
|
||||
action handle(f:frame.stream_id_blocked,src:ip.endpoint,dst:ip.endpoint,scid:cid,dcid:cid,e:encryption_level)
|
||||
around handle {
|
||||
require cid_dst_to_src_set(dcid) & cid_dst_to_src(dcid) = scid;
|
||||
require e = encryption_level.other & established_1rtt_keys(scid);
|
||||
require num_queued_frames(scid) > 0 -> e = queued_level(scid);
|
||||
...
|
||||
call enqueue_frame(src,scid,f,e,false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Max data frames set the limit on the total data bytes that the source endpoint is willing
|
||||
# to receive for all streams combined.
|
||||
#
|
||||
|
|
|
@ -19,7 +19,7 @@ attribute frame.max_data.handle.weight = "0.02"
|
|||
#export frame.application_close.handle
|
||||
#attribute frame.application_close.handle.weight = "0.02"
|
||||
|
||||
export frame.stop_sending.handle
|
||||
# export frame.stop_sending.handle
|
||||
|
||||
before frame.max_stream_data.handle(f:frame.max_stream_data,src:ip.endpoint,dst:ip.endpoint,scid:cid,dcid:cid,e:encryption_level) {
|
||||
if _generating {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#lang ivy1.7
|
||||
|
||||
include quic_server_test
|
||||
|
||||
attribute frame.crypto.handle.weight = "5"
|
||||
|
|
|
@ -47,6 +47,7 @@ server_name = 'winquic'
|
|||
getstats = False
|
||||
run = True
|
||||
pat = '*'
|
||||
time = 100
|
||||
|
||||
# server_addr=0xc0a80101 client_addr=0xc0a80102
|
||||
ivy_options = {'server_addr':None,'client_addr':None}
|
||||
|
@ -75,6 +76,8 @@ for arg in sys.argv[1:]:
|
|||
run = val == 'true'
|
||||
elif name == 'test':
|
||||
pat = val
|
||||
elif name == 'time':
|
||||
time = val
|
||||
elif name in ivy_options:
|
||||
ivy_options[name] = val
|
||||
else:
|
||||
|
@ -212,7 +215,7 @@ class Test(object):
|
|||
class IvyTest(Test):
|
||||
def command(self,seq):
|
||||
import platform
|
||||
return ' '.join(['timeout 100 ./build/{} seed={} the_cid={} server_cid={} client_port={} client_port_alt={}'.format(self.name,seq,2*seq,2*seq+1,2*seq+4987,2*seq+4988)] + extra_args)
|
||||
return ' '.join(['timeout {} ./build/{} seed={} the_cid={} server_cid={} client_port={} client_port_alt={}'.format(time,self.name,seq,2*seq,2*seq+1,2*seq+4987,2*seq+4988)] + extra_args)
|
||||
|
||||
all_tests = []
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче