►
From YouTube: DASH Behavioral Model WG weekly Mar 23 2023
Description
Go overbmv2 for ST/PL
https://github.com/sonic-net/DASH/pull/308
A
Behavior
model
call
for
March
23rd
and
what
I'm,
showing
what
I
hope
you
can
see
on
the
screen
is
the
notes
from
last
time,
in
the
YouTube
video
link
and
less
time
you
know,
Prince
was
kind
enough
to
cover
that
inbound
pipeline
for
service
tunnel,
private
link
and
I
think
today,
first
thing
off
I
think
we
have
Marian
if
he
would
like
to
cover
some
more
service
tunnel.
Private
link
items
out
of
PR
308
is
that
right,
Marion.
A
B
C
B
So
service
tunnel,
from
the
data
point
playing
the
data
plane
point
of
view.
It
is
an
extension
to
the
routing
table.
It
is
a
new
route
type
that
provides
a
different
set
of
Transformations.
B
B
Over
in
the
example
section
the
login
to
winner
there's
service
tunnel,
how
it
is
configured,
so
you
can
see
the
familiar
Dash
Road
table,
of
course,
the
same
key
in
I
plus
prefix.
B
But
this
time
we
do
a
different
set
of
Transformations,
which
is
more
looks
like
a
net
that
requires
changing
overlay
along
with
the
underlay.
So
this
one
has
more
details
on
on
the
transformations.
B
The
changes
to
to
the
behavioral
model,
so
there
is,
there,
is
a
bunch
of
different,
say,
different
changes
that
went
into
internet.
Some
of
them
are
related
to
General
infrastructure.
More
than
two
service
tunnel,
for
example,
we
have
Christina,
is
dead.
B
Yeah
thanks
so
right,
so
that
there
is
stuff
added,
like
NV
GRE
end
cap
for
for
doing
the
service
tunnel.
So
this
is
kind
of
copy
of
VXL
end
Camp
about
for
the
different
header
type,
so
headers
include
nvg,
Arena
reason
being
that,
according
to
the
use
case,
is
that
the
oh
yeah,
by
the
way?
So
the
service
tunnel
is
the
tunnel
which
has
two
endpoints.
One
endpoint
is
on
the
dash
device.
B
Second,
endpoint
is
somewhere
else
on
the
receiving
the
side
of
the
service
which
is
being
terminated
at
the
load
balancer,
or
something
like
that.
So
we're
implementing
our
site
on
this
tunnel.
So
the
connection
will
be
originated
only
level
four
service
tunnel
only
in
the
outbound
but
then
established
in
both
ways.
B
So
that's
what
we
have
the
end
of
four
and
then
there
are
parts
of
the
pipeline.
So,
let's
start
with
the
like,
with
the
entry
point
that
where
the
service
tunnel
begins.
So
as
I
said,
this
is
a
new
routing
type,
so
you
can
see
that
we're
adding
that
to
to
the
routing
the
table.
We
add
a
new
action
along
with
Vina
Adventure.
B
So
this
is
this
action,
it's
quite
large
because,
as
I
said,
we
have
Transformations
for
Overland
and
underlay.
So
there's
parameters
for
overlay
like
dip
and
dip
mask
Sip
and
sip
mask
so
it's
a
little
bit
more
flexible
than
you
would
see
in
Sonic
design,
because
Sonic
just
does
the
current
use
this,
where
we
have
32
bits.
B
For
any
mask-
and
this
will
be
valid
also
for
private
link,
so
these
are
the
first
parameters
and
we
have
our
underlay
underlay
is
coming
from
the
route
entry.
So
if
in
v-net
use
case,
this
is
on
the
ca2pa
table,
so
the
underlay
is
different
for
your
destination.
So
here
the
whole
prefix
goes
to
one
endpoint,
so
we
have
both
Sip
and
dip
over
here
and
also
a
choice
for
encapsulation.
B
So
there
is
a
new
enum
value.
You
know
type
as
a
dash
encapsulation.
B
Plus
tunnel
key,
so
the
tunnel
key,
is
either
vxlan
value,
vxi,
vni
value
or
nvgre
and
GRE
key
value.
So
the
set
of
Transformations
that
we
are
doing
is
we
saved
the
original
ones.
B
What
for
original
overlay
destination
I've
been
Source
map
and
we
do
service
panel
and
coding
I
will
go
into
that
action
separately,
but
essentially
what
it
does
is
it
takes
header
and
transforms
it
from
V4
header
to
V6
header,
so
yeah.
So
the
thing
is
that
for
the
service
tunnel
destination
IP
in
the
overlay
is
not
C8,
it's
already
internet
or
optimal
IP,
because
it's
a
service
like
a
public
service
that
is
available
over
the
internet
as
well.
B
B
D
Marian,
so
the
Capa
comes
after
routing.
In
this
case,
the
transformation
from
to
the
overlay
to
the
overlay
dip
right
does.
Does
that
need
to
come
before
or
at
the
time
of
the
CAPA.
B
So
there
will
be
no
CA
to
pay
lookup
in
this
case,
right
after
after
routing
we
go,
we
have
all
of
the
information
for
the
underlying.
D
Okay,
so
what
you're
saying
is
the
transformation
in
the
overlay
dip
happens
way
before
right
in
the
pipeline.
C
E
B
Yeah
yeah:
that's
why
we
in
the
behavior
in
the
behavioral
model,
the
entries
like
like
the
old
values,
are
remembered
or
saved
for
the
reverse
transformation
when
the
packet
comes
back,
so
the
city
table
needs
to
know
like
in
One,
Direction
you're
doing
this
transformation,
but
in
the
opposite
direction
you
will
need
to
do
transformation
back
from
V6
to
V4,
to
restore
original
addresses.
B
B
Yeah,
so
underlay
Sip
and
dip
values
are
optional
and
if
they
are
not
provided,
then
we
just
take
the
original
values
because,
as
I
said,
the
original
one
can
be
already
a
PA
and
often
is
so.
Dmacc
is
unchanged.
B
Separately,
it's
just
due
to
the
limitation
of
the
behavioral
model.
I
will
by
the
way
I'm
not
sure
if
there
is
such
a
limitation
in
the
dpdk
backend,
but
here
it
does.
It
didn't.
Allow
me
to
express
like
the
encapsulation,
which
is
conditioning
if
I'm
doing,
if
I
have
vxline,
then
I
do
the
external
help
with
test
encapsulation
is
then
video,
read
and
I
need
to
do
language
end
up
within
this
action,
so
it
wasn't
simply
Allowed
by
the
backend.
So
that's
why.
C
B
Split
them-
maybe
it's
not
the
case
for
dpdk,
so
maybe
I'll
try
it
just
to
put
everything
inside
the
action
so
yeah.
So,
as
I
said,
some
of
the
things
are
moved
are
done
in
the.
E
B
Block
primarily
the
encapsulation,
based
on
on
this
parameter,
provided
we'll
do
either
of
the
exam
or
nvgre,
and
after
that,
as
you
can
see,
there
is
no
opposed
to
that.
B
As
opposed
to,
for
example,
Vienna
drought,
the
test
C
to
PA
mapping
done
after
this
action,
this
action
doesn't
do
another
table.
Why
is
just
n
cup
and
you're
done?
B
So
next
is
the
this
interesting
part,
which
is
service
tunnel
and
gold,
which
is
actually
just
with
four?
It's
four
to
six
transformation,
so
we
as
the
input
we
expect
before
header
actually
headers
with
V4
in
it
and
what
we
want
to
change
it
and
change
them
to
so
that's
what
we
do.
We
set
V6
error
valid.
You
set
all
of
the
regular
data
plus
copy
some
of
the
corresponding
fields
TL
for
example,
protocol.
Then
we
do
the
before
to
V6
transformation
according
to
the
rule.
B
So
basically
there
is
like
there
is
default.
V6
address
some
portion
is
coming
from
here.
Another
portion
is
taken
from
the
original.
B
B
And
then
we
say
that
we
don't
we
no
longer
need
before
we
moved
all
of
the
information
there
yeah.
So
some
of
this
action
was
already
coded
I,
just
fixed
a
few
things
to
make
it
more
flexible
and
yeah
and
service
tunnel.
The
code
is
no
acceptance
like
since
we
are,
since
we
can
have
an
arbitrary,
an
arbitrary
field
fields
and
masks
over
here
now.
B
It
is
not
deterministic
how
you
do
the
V6
to
V4
transformation
back,
so
you
need
to
supply
these
parameters
so,
as
I
said,
that's
essentially
acting
as
a
net,
so
that
we
pick
some
address.
B
We
upload
transformation
in
One
Direction,
and
we
also
need
to
upload
transformation
in
the
opposite
direction,
because
you
cannot
really
the
decoded
from
from
the
original
field.
You
need
to
have
your
transformation
in
both
directions,
remembered
when
you
get
the
first
time.
C
B
Yeah
and
then
for
the
way
back.
B
So,
as
I
said,
we
have
the
Outlook,
then
for
the
inbound.
We
will
need
to
restore
all
of
these,
so
we
keep
and
the
behavioral
model.
Since
we
don't
have
like
in
the
hardware
implementations,
we
don't
have
an
option
of
software
fast
path,
it's
all
just
one
pipeline,
so
we
the
way
to
do
like
what
would
really
be
a
fast
offload
of
the
opposite
direction.
B
We
just
need
to
remember
some
values
for
the
original
of
from
the
original
packet,
and
then
we
will
need
to
to
restore
them
whenever
we
get
the
packet
on
the
way
back,
yeah,
so
by
the
way,
I'm.
Also
writing
a
test
for
that
to
make
sure
it
works,
so
it
it
would
be
good
to
test
it
with
dpdk,
with
connection
tracking
to
see
that
both
directions
are
working
because
service
tunnel
is
slightly
trickier.
B
You
cannot
establish
the
end
mode,
so
yeah,
so
for
now,
without
connection
tracking
I'll
be
able
to
do
the
outbound,
and
then
we
can
just
put
the
and
one
test
under
the.
If
this,
until
dpdk
will
be
typically
came
back
and
will
be
able
to
compile
the
whole
dash
pipeline.
B
This
part
I
just
took
an
example
from
GeForce
pad
yeah,
so,
like
all
the
inbound
doesn't
doesn't
work
really
until
we
have
actually
I
can
try
to
compile
it
at
least
you're
right.
Let
me
give
this
comments,
so
there
will
be
less
work
for
later.
F
Also
I
noticed
in
the
pull
request,
you
know,
there's
merge,
conflicts
and,
and
the
CI
pipeline
hasn't
run.
Yet
when
do
you
think
we'll
get
to
the
point
where
you
can
compile
it.
F
B
Probably
that
yeah,
but
my
Branch
along
compliance,
so
I
think
that's
yeah
I'll
fix
that
shouldn't
be
a
big
deal.
Let's
see,
where
are
the
checks?
F
B
C
B
Right
and
then
there
is,
there
is
a
bunch
of
infrastructure
to
generate
say
apis
properly,
yes,
so
site
apis
are
I'll
totally
straightforward.
Let
me
pull
out
those.
F
And
as
far
as
test
cases,
since
this
is
fairly
involved,
what
do
you
what's
your
feelings
on
having
test
cases
to
go
with
this
PR.
B
Yeah,
so
the
traffic
test
is
kind
of
like
Vienna
to
v-net
kind
of,
but
I
will
be
able
to
do
One,
Direction
and
the
opposite
direction.
I
need
connection
training.
F
F
B
But
actually
I
I
think
I
will
post
at
least
how
the
packet
is
supposed
to
look
like
in
both
direction
directions
and
all
that
I
can
do
it
right
away
just
we
won't
really
test
the
opposite
direction
with
with
the
packet.
We
won't
expect
this
packet,
or
not
yes,
so
say
API
generated
looks
like
that.
We
have
the
new
action
type.
B
You
have
overlay
dip
dip
mask
zip
mask,
so
that's
for
the
overly
transformation
underlay
regard
to
runners
or
optional
by
the
way.
B
This
is
like
this
is
limitation
of
current
API
generation,
because
I,
because
actually
this
overlay
parameters
are
mandatory,
I
cannot
make
them
mandatory
right
now,
but
I
plan
to
move
to
the
annotations
and
then
we'll
have
more
flexibility
on
how
we
Define
the
parameters,
because
this
information
is
not
really
derived
from
the
let's
say
from
the
signature
of
the
action:
it's
it
all
needs
to
be
put
by
the
person
who
who
defines
the
pipeline
and
then
for
the
underlay.
B
We
have
this
time
optional,
unrelated
One
release
sip
of
Missing
take
from
overlay
Dash
encapsulation.
So
this
is
kind
of
a
new
thing
for
for
API
generation.
It
is
an
enum
type,
so
there
is
I
added
a
Collins
AP
agent
to
generate
all
the
enums
that
we
have.
So
we
have
like
two
enorms
right
now:
I
also
fixed
their
names
and
the
pull
requests
you
can
be
over
here,
like
metadata,
has
changed
minimum
name,
and
so
this
is
the
direction
and
then
headers
I
think
this
yeah.
B
So
this
one
has
a
new
enum.
So
all
of
those
are
now
generated
over
here
in
case
they
will
be
used,
so
they
are
not
typing
specific
apis.
This
is
usually
types
extensions
and
it
the
dash
encapsulation
takes
this
type.
It
has
a
default.
B
And
the
key
for
the
tunnel
use
32
value
on
default,
zero.
So
that's
that's
how
the
API
looks
like.
So
if
you
will
take
the
example,
so
these
are,
these
are
like
underlay,
yeah,
sick,
so
unrelated
absorption,
I,
don't
know,
for
instance,
you
you
won't
see
it
here,
so
it
will
be
just
type
it.
Those
two
are
values
where
let's
say
this
is
like
prefix,
but
with
the
fixed
prefix
length.
B
So
the
prefix
length
is
designed
at
the
point
and
and
Sonic
and
yeah.
So
this
app
and
the
other
two
are
Global
and
Sonic,
and
the
GRE
encapsulation
type
and
key
value
is
over
here
so
PSI
as
the
ability
to
provide
those
values
per
entry,
which
is
I,
believe
it
will
be
like
closer
to
to
how
the
pipelines
usually
are
defined.
We
try
to
avoid
Global
values.
We
set
everything
for
entry
and
yeah,
so
this
is
about
the
API.
D
For
service
tunnel
I'm,
sorry,
it
could
be
could
be
bxlan,
R
and
vgre
right
here.
There
are
two
different
encapsulation
types
in
this
file.
The
previous
one.
You
showed
only
showed
GRE
as
n
capital.
B
B
Okay,
because
everything
is
generated
from
this
one,
so,
okay,
maybe
I,
missed
something.
Yes,.
B
B
Some
of
it
will
still
be
there
like
I
guess
this
part,
because
it's
simple
moving
from
one
python
dictionary
to
another
python
dictionary,
so
I,
don't
think
there
is
much
to
be
done
there
but
stuff
like
this,
like
figuring
out
what
is
the
type
and
other
things
for
a
for
a
parameter
which
result
in
these
in
the
attribute
type.
So
this
these
things
I
think
can
be
provided
in
the
pipeline
yeah.
B
So,
as
I
said,
I
have
that
on
my
in
my
backlog,
and
it
is
partially
working
already
so
I
will
be
submitting
that
soon
and
last
thing
is
templates.
So
three
things
is
just
new
function
to
copy
the
inner
values
it
assigned
32-bit
value,
just
a
copy
of
set
u32.
B
I
enums,
so
this
is
a
small
template
to
generate
and
append
enums
to
the
site
types,
extensions,
nothing
special,
just
type
def
of
these
Loop
over
the
members
generate
the
proper
name
and
yeah.
That's
it
and
PSI
API
Dot
H
template
just
one
small
thing:
it's
a
so
type
will
be
already
added
from
the
type
field
in
the
dictionary,
but
there
is
a
default
that
is
done
differently.
So
default
needs
to
be
taken
from
from
the
in
on
values.
B
So,
basically
the
first
value
that
is
supplied
there
will
be
taken
and
it
is
copied
by
this
iepi
Gen
2,
this
default
field,
so
this
I
won't
complain
yeah,
so
two
action
items
that
I
still
have
for
the
split
request
is
to
fix
the
conflicts
with
the
dpdk
backend
and
second
I
will
be
adding
test.
So
I
already
verified
that
at
least
Transformations
work,
so
I
see
really
a
valid
packet
as
expected,
Parts
properly
by
TCP,
Dom
yeah.
So
I'll
I'll.
B
Add
that
case
you
need
to
to
finish
the
like
the
comparison
of
the
packet,
but
generally
the
Transformations
themselves
look
to
be
working.
B
Okay,
so
that
that's
it,
if
you
have
any
questions,
please
ask
so
the
private
link
is
also
in
the
pipeline,
but
I
would
like
to
to
finish
this
as
soon
as
possible,
because
private
link
has
infrastructure
dependencies
on
this
one.
B
E
Just
a
question:
this
might
be
a
dumb
question
on
the
route
result
for
the
service
tunnel,
there's
like
the
the
overlay,
dip
and
sip,
and
also
some
other
fields
in
there
and
there
there
are
masks
in
there
are
those
true
like
any
bit
valid
masks
or
are
those
more
like
prefix
lengths.
B
Yes,
I
think
for
service
tunnel
from
the
example
that
I've
seen
is
it's
split
in
two?
So
so
it's
more
like
a
prefix,
but
for
for
private
link,
it
acts
more
like
a
mask
where
you
can
mask
out
some
bits
from
the
original
address.
Something
like
that.
B
C
A
D
We
got
it
I
remembered
you
have
please.
A
D
Sure
I
will
take
a
look
and
and
I
just
also
wanted
to
say
that
on
on
on
Monday,
we
discussed
I.
D
This
is
about
the
baby
Hero
Test
current
implementation
has
UDP
if
we
I
forgot
to
mention
this
in
the
community
meeting
yesterday,
but
we
can
discuss
in
the
in
the
next
Wednesday
meeting
too,
but
the
suggestion
is
to
have
TCP
in
the
baby
Hero
Test,
along
with
UDP
TCP,
mainly
because
we've
discussed
it
mostly
in
the
community,
all
those
files,
and
even
if
we
don't
look
at
all
the
dates,
the
basic
States
sin
Fin
and
if
those
are
covered,
utilizing
the
TCP
State
machine
in
the
baby,
Hero
Test.
A
F
D
F
Okay,
I'll
I'll,
bring
it
up
to
him
internally.
Thanks
for
reminding
me
I
do
remember
that
I
think
he
what
I
think
initially
he
said.
Well,
we
implemented
UDP
at
first
just
to
keep
things
simple.
So
we
get
the
functionality.
You
know
the
overall
test,
but
yeah.
It
would
probably
not
be
impossible
to
elaborate
a
little
bit
and
do
some
TCP
testing.
A
Great
and
then
I
think
on
the
every
other
after
today,
unless
something
incredibly
pressing
comes
up,
you
know
to
make
a
schedule
for
next
week.
So,
but
if
you
have
anything
you
know
reach
out
to
me,
did
you
guys
have
anything
else
before
I
wrap
up?
This
call.