►
From YouTube: DASH Behavioral Model WG June 30 2022
Description
TCP state machine discussion and requirements
WB/BB testing discussion
Alignment to P4
Next steps to define APIs
A
Behavioral
model
meeting
today
june
30th
and
it
looks
like
we
have
quite
a
few
people
here-
I'm
gonna
turn
off
my
camera,
and
so
what
I'm
displaying
on
my
screen
is
one
of
the
items
we
wanted
to
bring
over
to
the
behavioral
model.
Meeting
this
week
we
had
talked
about
black
box
versus
white
box
testing
for
a
tcp
state
machine.
I
believe
it
was,
and
we
indicated
that
we
would
discuss
that
here,
and
so
I
added
a
added
a
tracking
item
here.
A
Just
in
my
cheat
sheet
of
things,
we
need
to
work
on,
and
so
maybe
we
could
start
off
that
conversation.
I
think
that
marion
had
indicated
we
we
don't
really
have
apis
to
do
this
and
it
might
be
difficult
per
hardware
supplier.
If
I
remember
is
that
correct
guys
is
that
where
we
left
it
off
last
time.
B
Oh,
I
just
mean
there
is
some
work
to
do.
It's
not
really
difficult,
but
it's
time
consuming,
but
I
don't
see
gerald
on
the
call
before
trying
to
talk
about
apis.
I
would
want
to
know
the
requirements.
Okay,.
B
A
He
just
turned
green
in
teams,
so
that
means
he's
usually
getting
ready
to
join.
So
I
guess
we
could
I'll
do
a
request
to
join
here.
Oops
john's
here:
okay,.
A
It
looks
like
we
have
a
couple
of
other
people
joining
so
hi
hi,
guys
who
just
joined
we
started
started,
maybe
talking
about
white
box
versus
black
box
testing
and
we
thought
we
might
wait
for
gerald,
since
this
was
more
of
his
question
before
we
got
further
into
it.
So
that's
what
we're
doing
right
now
other
while
we're
waiting.
A
A
A
B
B
B
On
the
inbound
direction,
our
let's
say
final
goal
is
to
find
out
what
is
the
receiving
vm's
public
address
and
do
vxlan
encapsulation
and
send
the
packet
to
it.
So
before
what
we
had
was
that
we
had
an
indirection
of
virtual
machine
and
this
virtual
machine
had
an
attribute
of
the
public
address.
So
basically
the
mapping
was
that
we
previously
found
out
what
eni
we
are
sending
to,
and
we
have
a
mapping
table
from
eni
to
virtual
machine,
and
then
virtual
machine
will
give
us
the
public
address
unrelated
station
ipe
plus
vni.
B
So
from
what
we
saw
when
we
were
reviewing
the
sonic
design
is
that
there
is
no
notion
of
virtual
machine
controller
operates,
and
probably
this
is
even
better,
because
we
have
less
in
directions
and
it
doesn't
really
break
anything.
Controller
simply
operates
with
enis
and
every
dni
has
its
own
public
address.
So
let
me
show
you
that
as
well.
B
So
what
we
want
to
do
is
to
align
behavioral
model
with
this
design
and
move
underlay
ip.
So
we
want
to
remove
those
two
tables
completely
mapping
to
the
virtual
machine
and
simply
put
underlay
ip
and
vxlan
vni
that
is
supposed
to
be.
The
packet
is
supposed
to
be
encapsulated
with
vxlan
header,
just
move
it
directly
to
to
eni
table
like
over
here.
So
we
have
our
eni
table
and
those
two
attributes
now
belong
to
now
belong
to
enid
itself.
So
this
is
the
change.
B
It's
not
really
change
in
the
behavior
like
pack,
it
in
and
pack
it
out
will
look
the
same
for
every
packet
in
that
you
can
come
up
with,
but
we're
just
removing
this
in
direction,
making
less
configuration
flows,
less
less
entities
less
dependencies
that
we
need
to
track
so
kind
of
like
flattened
this
a
little
bit.
So
this
is
the
description
of
the
change.
It's
in
this
pull
request-
and
I
saw
chris
asked
me
to
merge
it
after.
B
After
chris,
do
you
mean
this?
Is
your
ci
yeah,
so
yeah.
C
What's
merged
this
morning,
just
a
while
ago,
but
debugging
there's
a
problem
in
the
pipeline
which
proved
its
value.
B
All
right,
okay,
so
for
anyone
interested,
please
review
number
one,
three,
seven,
so
that
this
is
the
change.
D
E
D
Of
view,
so
it's
much
more
easier
to
you
know
view
it
and
then
much
more
easier
to
really
put
these
things
together
right.
There
is
a
lot
of
alignment
now,
so
thank
you.
A
Now-
and
I
noticed
andy
came
on
the
line,
so
so
there's
no
p4
meeting
next
monday
is
there
andy.
I
think
I
saw
fourth
of
july.
F
F
I
think
we're
all,
but
done
on
that
one.
I
just
need
to
merge
it
in
and
and
for
a
final
review.
A
Rupert,
okay,
great
so
yeah,
oh
hey
gerald
hi!
We
were
just
going
over
a
pull
request
from
marianne
to
place
two
attributes
into
a
different
table,
not
not
anything
that
you
really
missed
there.
So
yeah
thanks
for
joining.
We
were
also
talking
about
the
topic
from
last
week,
where
we
wanted
to
move
the
conversation
around
black
box
and
white
box
testing
over
to
the
behavioral
model
meeting
and
the
guys
here
wanted
to
wait
for
you
to
join.
So
we
could
have
your
opinion
as
well.
A
So
yeah
this
is
this
is
what
we
had
talked
about
last
time
guys
and
we,
we
thought
we'd
talk
about
the
discussion
here
and
marion
mentioned
that,
although
we
don't
have
apis,
what
did
you
say?
Mario
is
not
difficult,
but
it's
time
consuming.
G
G
A
B
And
about
so
the
state
should
be
per
connection
and
the
another
question
I
have:
how
will
do
we
assume
that
we
know
the
five
tuple
or
is
it
something
that
also
api
should
provide
like
a
notification
about
what
five
tuples
are
learned
and
then
we
will
go
over
them
or
do
we
assume
that
the
test
will
know
what
five
tablet
is
interested
in
and
it
will
tell
exactly
I'm
interested
in
this
flow.
So
give
me
its
state.
Is
that.
G
The
assumption
that's
more
realistic,
because,
when
we're
doing
testing
we
know
what
we're
sending
in.
We
know
the
five
tables
we're
just
trying
to
check
the
so
we
expect
that
connection
to
be
in
some
kind
of
state,
depending
on
what
we
just
sent.
So
we
would
be
saying
I
want
to
see
the
state
for
this
five
tuple.
Yes,.
G
I
don't
need
to
do
a
walk
of
it.
It
could
be
like
way
too
many
you
just
like
a
a
five
tuple.
I
wanna
see
the
state
connection
state
of
that
udp
or
tcp.
In
fact,
whatever
we
decide
for
udp
way,
when
we're
doing
functional
testing,
we
can
we
can
get
a
much
better,
clear
understanding
of
the
different
implementations
and
what's
happening
and
that
that
the
behavioral
model
tcp
state
machine,
whatever
it
ends
up
being,
is
being
followed,
not
some
something
completely
different.
G
You
should
have
you
should
have
a
connection
in
your
the
fast
path
table
right.
You
have
a
connection
in
that
connection.
You
have
to
be
holding
stuff,
I
mean
you
have
pointers
to
the
mappings.
You
have
pointers
to
the
to
the
output
interface.
You
have
you'll
have
in
that
you
have
counters
whatever,
but
you
should
also
have
the
tcp
state.
There
too.
I
mean
that,
where
else
would
you
keep
it.
H
C
Let
me
catch
you
up
a
little
bit
from
last
week.
I
think
on
this.
If
I
may
so
gerald
posited
that
we
ought
to
be
able
to
read
the
state,
you
know
exercise
this
tcp
state
machine
through
its
paces.
You
know
at
a
controlled
way
kind
of
like
a
white
box
test.
Then
we
read
back
the
state.
We
didn't
get
into
how
that'll
be
done
and
what
we're
talking
about
is
maybe
how
but
we
did
talk
about
the
need
for
an
api
in
which
you
can
read
the
state.
C
C
Then
we
would
decide
how
to
do
that
and
you
know.
Is
there
a
psi
api
that
just
hand
written
that
says?
Read
me
the
state
or
do
we
use
p4
code
to
model
the
observability
of
the
tcp
state
and
auto
generate
the
header
both
of
those
are
options.
Our
options
right
and
marion
has
already
taken
some
steps,
we'll
be
doing
additional
handwritten
psi
apis
where,
in
which
case,
in
those
cases
where
the
p4
code
doesn't
express,
for
example,
init
sci
api
query.
C
That's
like
an
out
of
band
kind
of
a
api
that
you
have
to
hand
write.
It
doesn't
come
out
of
the
p4
code.
The
the
tcp
state
machine
read
might
be
another
handwritten
api.
If
there's
no
p4
model
of
that,
if
you
don't
try
to
impose
on
the
model,
you
can
read
the
state,
but
that
makes
it
tricky
to
model
in
bmv
too
right.
So
we'll
have
to
sort
that
out.
I
think,
but
there
is
a
tcp
state.
G
Model
that
they
have
in
p4
right,
that's
what
monsanto
originally
offered
and
people
are
contributing
to.
So
we
why
wouldn't
we
be
able
to?
Why?
Could
it
not
auto
generate
the
api,
I'm
not
sure.
E
G
E
G
Want
them
to
they
don't
have
to
implement
the
behavioral
model
like
that,
but
we
do
want
them
to
have
the
exact
same
behavior
of
the
tcp
state
machine
that
we
are
defining
in
the
behavioral
model
only
way
I
can
yes
see.
That
is,
I
mean
if
whether
it's
auto
generated,
because
they
have
a
different
kind
of
model
or
not,
it
still
has
that
same
behavior.
G
So
I
don't
care
how
you
do
it,
but
I
do
care
that,
in
the
end
that
everybody's
tcp
risk
you
know,
behavior
is
the
same
and
as
defined
in
the
model
that
we're
defining
in
the
behavior.
G
I
can
kind
of
try
to
do
that
from
the
outside,
but
I
would
rather
be
able
to,
as
I
stimulated
know,
that
they're
going
through
the
states,
because
that
way
we
can
make
corrections
and
we
can
tell
everybody
about
those
corrections,
etc.
Otherwise,
it's
just
us
finding
out
of
every
single
design
that
don't
behave,
the
same
way
that
sort
of
behave,
but
they
don't
and
they
miss
the
states
or
whatever
we
don't
get
the
shared
learnings
out
of
it
by
the
way.
C
Is
there
going
to
be
a
technical
or
performance
burden
to
do
this,
or
is
it
just
a
little
bit
of
plumbing
and
api
work?
You
know
we
should.
We
should
have
a
reality
checker
to
make
sure
it's
like.
Oh
no.
This
has
massive
implications
on
a
production
version.
For
example,
does
anyone
have
any
opinion
on
that
any
of
the
vendors
just
so
we
don't
ivory
tower
ourselves
into
a
corner.
A
Yeah,
so
we
have,
you
know,
bud
from
excite
labs.
Maybe
could
let
us
know-
or
you
know,
mario
or
maybe
lisa
from
broadcom
or
honey,
feel
free
to.
Let
us
know
guys
here.
I
Hey
christina
his
bud,
so
a
couple
thoughts.
I
can
see
pros
and
cons
of
both
approaches
to
testing
the
black
box
and
the
white
box
with
the
white
box
testing
that
we're
talking
about
there
may
be
some
timing
concerns
where
you
know
when
these
flows
get
installed.
I
Exactly
where,
with
a
black
box
test,
you
would
just
shoot
like
a
series
of
packets
at
the
target
and
the
the
timing
is
not
really
an
issue
for
that
type
of
testing
like
with
the
well-crafted
packet.
After
I
mean
sorry,
let
me
take
a
step
back
so
you'd
send
a
bunch
of
packets
to
get
the
flow
table
into
a
certain
state
and
then
you'd
send
a
couple
packets
like
immediately
afterwards.
C
But
do
you
think
if
there
were
programmable
timers
for
the
various
aging
mechanisms
that
that
could
be
part
of
the
test
controller
to
say
we'll
make
this
timer
long
enough
so
that
we
don't
have
any
race
conditions
yeah
sure
another?
Is
that
another
burden
or
that
just
be
kind
of
a
a
low-hanging
fruit
way
of
doing
it?.
I
G
That's
correct
and
that's
the
only
thing
I'm
trying
to
get
out
of
this
is
that
to
test
that
they've
properly
implemented,
that
state
machine
yeah
and
you
would
write
the
test,
it's
a
functional
test.
It
would
not
be
throughput
or
anything
right.
You
use
blackbox
testing
for
that.
A
G
Yeah,
we
won't
have
a
problem
with
that.
I
don't
think
that
should
yeah,
that
it
really
shouldn't
be
and
it
would
never
be
used.
You
wouldn't
use
this
on
a
live
unit
right
field.
This
is
you'd,
get
junko
right
because
things
just
changed
so
fast
you'd
only
be
using
this
for
for
correctness,
testing,
and
so
it's
the
performance
is
not
what
we're
after
there
you're.
Just
after
doing
functional
tests.
C
Yeah
even
instrumenting
the
implementation
to
do
this,
even
if
you
only
use
it
in
testing
slowly,
would
that
act
of
instrumenting.
It
cause
a
burden
in
production
code
or
would
it
need
to
be
like
a
build
option,
because
you
know
there's
things
like
synchronization
mechanisms
that
could
you
know
artificial
ones
for
this
testing
that
could
then
burden
the
production
code.
G
D
I'm
trying
to
understand
guys,
you
know
the
requirements.
Sorry,
this
is
probably
a
little
slow
on
this
one,
but
if
you,
if
you're
trying
to
you,
know,
find
out
the
current
state
of
a
connection
which
hasn't
really
completely
come
up
right
because
generally,
what
happens
is
that
you
know
if,
if
there
is
a,
if
you're
looking
for
a
flow,
and
if
the
flow
is
a
is
a
mess,
then
essentially
it
is.
It
is
still
is
in
the
connection
tracking.
G
If
you
send
a
syn
packet,
it
opens
up
a
connection
in
that
table
as
soon
as
that,
synth
packet
is
arrives
and
then
it
just
it
just
follows
state
until
it
closes
that
connection,
which
is
far
down
the
line
when
you
receive
all
six
packets
or
some
time
out,
it's
not
something
that
happens
slowly.
I
mean
the.
G
In
the
flow
table,
yes
and
then
once
a
connection
is
you
know
it
is
created,
it
has
to
hold
the
tcp
state,
otherwise,
like
there's,
it
has
to
right,
there's
no
other
way
of
doing
that.
I
can't
cure
it
so,
given
that
it
has
to
have
that
state
in
order
for
it
to
implement
the
state
transitions,
we
should
be
able
to
read
it,
and
that's
all
I'm
saying
and
that
every
time
I
send
a
packet,
I
don't
even
need
to
wait
within
nanoseconds.
That
state
will
have
been
updated.
G
C
Yeah,
it
shouldn't
be
hard
to
be
able
to
read
states
down
in
the
you
know,
milliseconds
or
tens
of
milliseconds
kind
of
timing
in
a
typical
unit
test.
Things
run
pretty
quickly,
so
I
I
think,
we'll
be
able
to
measure
actual
timer
operation
with
some
fidelity
too.
C
Go
ahead,
I
would
say
just
for
the
record
if,
if
people
implementing
this,
this
observability
run
into
issues
where
performance
or
interference
is
a
concern
with
production
version,
they
should
consider
a
build
option
for
white
box
testing
versus
production
and
just
kind
of
even
escape
hatch.
There
yeah.
G
G
Maybe
you
can
control
that,
because
you
have
one
flow
that
you're
operating
really
slowly,
so
you
can
actually
do
that.
But
the
reality
is
that
this
is
something
that
you
would
only
be
using
in
regression.
Testing
nightly
builds
and
to
allow
the
tests
themselves
to
even
be
created
properly.
I
Yeah
sounds
good
to
me
hi
gerald
question.
When
we
are
going
to
query
the
state
of
a
flow
in
the
flow
table.
Are
we
looking
to
see?
Is
one
of
two
possibilities
like
the
flow
is
established
or
not,
or
is
the
intent
to
look
at
all
the
like,
partially
established
states
as
well.
G
G
A
Sounds
like
we've
kind
of
closed
on
that,
and
maybe
we
could
go
back
to
requirements
then,
if
that's
what
we
need
to
do
marian
now,
the
requirements
are
clear.
A
Requirements
are
clear:
we
don't
think
it's
gonna
affect
okay,
so
chris
can
we
do
you
think
we
can
consider
the
topic
closed
and
we
can
move
forward.
C
A
Thanks
everybody,
that's
awesome,
and
thanks
for
coming
gerald
to
walk
us
through
your
opinions
on
that.
If
you,
if
you
guys,
can
see
my
screaming,
we
can
shift
topics
here.
We
did
get
a
couple
more
things
done
here
in
our
list
of
items
to
work
on.
So
thank
you
for
that
and
I
believe
we
did
split
out
the
ipv6
ackl
into
a
different
issue.
I
think
we
talked
about
that
already.
We
moved
a
couple
of
things
to
75
percent.
Complete
I've
changed
dependency
here
like
this.
A
One
in
particular,
is
dependent
on
p4
community,
this
one's
dependent
on
site,
thrift
server.
That
kind
of
thing,
so
maybe
we
could
does
anyone
have
an
update
on
their
item
I'll
go
by
owner
here.
A
So
we
were
going
to
check
back
on
june
30th
for
this
one
marion
told
me
privately
in
a
separate
meeting.
What
was
going
on
with
this
this
one
here,
but
maybe
we
could
talk
about
it
here,
marion.
B
Yeah
so
unfortunately
I
don't
have
the
eta
yet
because
roop
was
preoccupied
with
the
pna,
so
I
will
be
able
provided
to
provide
it
next
week.
So
probably
I
will
update
the
project
myself.
A
Oh
okay,
sorry
I'll
just
edit
great,
that
sounds
great
and
what
other
ones
were
we
gonna
this
one
we're
gonna
check
back
on
july,
14th,
the
cool
one.
A
Okay,
I
think
we've
helped
custom
with
this
one
christine
did
you
get
the
fork
you
needed.
A
Okay,
we
merged
that
great
all
right,
so
did
anyone
feel
like
we
needed
to
add
new
work
items
to
the
backlog.
We
we
added
this
routing
type
v-netdirect
with
marion
in
a
different
meeting
on
monday
and
if
there's
anything,
someone
wants
to
pick
up
here.
H
A
A
For
now,
okay,
great
and
then
ipv6
ip
option,
extension
headers
support
that,
and
I
think
that
mario
told
me
he
was
working
on
this
open
contrail
work
here.
E
Yes,
yes,
I
am
very
slowly.
Unfortunately,
I
apologize
but
yeah,
I'm
I'm
doing
a
little
bit
of
headway.
You
know.
A
Okay,
if
there's
something
you
need
help
with,
maybe
we
could
get
a
volunteer
for
you
from
here.
E
A
E
Let's
see,
maybe
let's,
let's,
let's
wait
until
well
next
week
we
are
not
gonna
meet
but
the
following
week,
if
I'm
not
done
by
then
then
maybe
if
someone
else
wants
to.
A
A
Okay-
and
I
think
I
mentioned
in
a
different
meeting-
I'm
tracking
other
work
here
for
the
overall
dash
community
and
then
I
can
move
these
items
into
the
different
projects
as
I
need
to
so.
Okay,
that's
all.
I
have
anyone
else.
A
J
Hello,
hi
sap,
yes
kristina.
I
I
have
a
question
so.
J
Nice
to
see
likewise
so
there's
this
task
about
ipv6
options.
I
think
it's
item
number
yeah.
Can
you
can
someone
detail
what
this
task
entails.
A
Yes,
so
I
made
a
quick
note:
currently
we
don't
support
it.
We
may
have
to
start
with
static
size,
ip
option
headers
for
v6.
Really,
that's
the
the
extent
of
my
knowledge
can
can
someone
else
chime
in
here.
Currently
we
do
not
support.
A
E
D
J
Does
this
task
also
involved
can
connection
tracking
work?
I
mean,
while
we
are
adding
extension
header
support,
we
also
have
to
take
care
of
things
related
to
connection
tracking.
E
No,
I
think
it's
orthogonal,
because
ip
v6
or
v4
is
connectionless,
whether
you
have
optional
headers,
you
know
options
in
the
ipv4
or
extension
headers
in
the
ipv6
in
ipv6.
It's
it's
just
that
we
are
not
currently
able
to
pass
them
and
and
process
them.
So
you
know
if
you
have
a
routing
header,
we
are
not
looking
at
it.
I
I
actually,
I
don't
think
only
we
are
not
looking
at
it.
I'm
not
sure
we
are
skipping
it
and
going
to
the
tcp.
E
J
A
J
A
E
J
B
B
J
A
Okay
and
all
right:
well,
thanks
guys
unless
there's
anything
else,.
A
And
it
looks
like
gerald
dropped
off,
okay,
I'll,
stop
the
recording
I'll
make
it
available.