►
From YouTube: DASH Behavioral Model WG July 14 2022
Description
Discussed PR141 - will keep a separate action
P4 fixes needed
#146 to saad-mhzr
A
Meeting
for
dash
it's
july
14th
and
we
could
get
started
so
we're,
I
think,
where
we
left
off
last
time,
we
had
137
that
needed
to
be
reviewed
and
approved.
We
closed
on
the
white
box,
black
box
testing
discussion
and
I
think,
let
me
pull
up
the
project
here.
A
Behavioral
model,
can
you
guys
see?
Okay,
yes,
yeah,
okay,
so
great
thanks
and
I
think
we
had
a
couple
of
items
to
check
back
on
today
today
during
this
call
july,
14th
july
14th.
That's
today,
okay,
and
so
I
was
wondering,
though
I
wanted
to
open
it
up.
First,
I
know
bud
had
a
question,
and
so
I
thought
maybe,
but
did
you
want
to
ask
your
question
well
before
we
get
started.
C
B
Tables
in
the
p4
code,
we
can
leave
it
to
the
end.
I'm
not
that
picky.
A
Okay,
why
don't
we
go
ahead
and
then
check
back
on
these
real
quick?
We
had
where
you
want
to
go
ahead
and
check
back
on
the
ones
for
the
14th.
A
I'll
go
into
the
by
owner
view
here,
so
I
know
we
wanted
to
check
back
on
number
seven
here:
connection
tracking
in
the
simulator
we
were
dependent
on
p4
community.
D
Yeah
this
one
is
not
dependent
on
p4
community
anymore.
However,
there's
still
work
to
be
done,
but
it
is
currently
on
hold
due
to
resource
allocation,
so
yeah.
I
cannot
provide
a
new
date
until
we
resume
this
task,
but
we
are
not
blocked
anymore.
We
just
need
to
get
to
it
at
some
point.
D
E
Yeah
yeah
yeah
how's
this
moving
on
moving
on,
but
not
done
yet.
A
Someone
have
some
music
going.
That's
that's
helpful
in
the
morning.
I
need
to
size
down
this
window.
Real,
quick.
A
A
I
think
that's
all
we
needed
to
check
back
on.
We've
had
conversations
about
scythe
thrift,
we've.
A
There
is
wasn't
it
number,
let
me
check
it
here.
A
This
one,
the
adding
the
tunnel
table
to
the
pipeline.
D
A
D
Tell
you
the
v-net
direct
route
by.
D
Yeah
I
saw
in
the
behavioral
model
implementation
the
v-net
direct
route
is
left
empty.
Can
you
please
explain?
Why
did
you
do
it
this
way.
F
Yeah
can
share
my
yeah.
A
F
Okay,
so
so
basically,
this
pr
is
about
handling
all
these
examples
from
the
sonic
hld
right.
So
there
are
four
four
cases
here
for
phase
one:
the
v-net
we
know
direct
the
direct
and
the
drop.
F
Four
cases
here,
three
cases
here
in
the
route
mean
it
was
already
there,
so
we've
added
the
direct
and
the
drop
so
and
within
the
v-net
is
where
we
have
the
v-net
and
v-net
direct
both
are
handled
here.
So
I'll
first
go
to
the
direct
and
the
drop,
and
then
we
could
talk
about
the.
B
F
So,
basically
from
the
example,
what
direct
means
is
that
we
don't
do
anything
in
the
overlay.
We
just
send
it
to
the
underlay
for
underlay
routing
the
packet
incoming
packet
from
the
vm
is
decap,
the
outer
header
is
decap
and
the
inner
header
is
just
routed
in
the
underlay.
F
This
is
nothing
to
do
here,
but
we
just
need
an
action
here
so
that
we
can
configure
this
from
the
gnml
from
the
dash
containers
and
then
the
drop
action
is
pretty
obvious,
so
we
want
to
drop
those
packets
matching
those
prefixes.
F
You
just
set
the
drop
to
true
so
the
so
that
leaves
the
route
we
need
so
in
the
route
we
net.
So
what
we
have
done
is
so
this
handles,
like
we
said
here
it
handles
both
these
cases.
So
the
first
case
is
where
we
ponder
the
mapping
table
the
ca
to
pa
mapping
table.
F
The
second
case
is
where
we
point
to
the
mapping
table
plus,
but
we
also
have
a
ipo
right,
meaning
the
lookup
ip,
the
ip
that
needs
to
be
looked
up
in
the
mapping
table
and
needs
to
come
from
this
routing
table,
whereas
in
the
first
case
we
just
use
the
ip
directly
from
the
packet,
the
best
ip
from
the
packet,
so
so
to
handle
both
those
cases.
We
have
this
flag
now
called
use
overlay
and
hyp,
and
we
also
specify
an
ip
here
in
this
in
this
routing
entry.
F
So
the
other
way
of
doing
this
would
be
to
create
a
separate
action
called
route
being
a
direct
and
not
use
a
flag.
So
we
could
do
that.
Also.
Currently,
when
I
tried
that
I
hit
one
limitation,
which
is
that
this
dest
v
net
vni
would
be
a
parameter
that
would
be
shared
by
both
those
actions
right
so
so
the
psi
api
generation
was
ending
up,
generating
two
different
attributes
with
the
same
name,
and
that
was
getting
a
compilation
error.
F
D
F
Okay,
yeah:
we
can
fix
that
so
I'll
work
on
also
fixing
the
api
generation
tool
to
just
not
create
the
duplicate
attribute.
F
So
once
I
do
that,
I
can
create
a
separate
action
and
then
I'll
get
rid
of
this
boolean
bit
here
and
so
the
route
being
a
direct
will
have
the
disk
finite
vni,
the
overlay
nh
ip
and
the.
So
these
two
right.
No,
it
won't
have
this
blank
and
it
will
directly
overwrite
the
lookup.
F
G
G
Yeah
so
so
there
is
obviously
one
of
the
I
mean
between
the
two
choices.
One
of
them
is
more
memory
efficient
right,
so
essentially,
you'll
be
adding
a
bit
to
the
whole
of
the
routing
table.
Whatever
is
the
size
right
could
go
into
millions
in
cases
right.
So
adding
actions
also
adds
because
you
need
to
select
a
specific
action,
so
it
might
depend
it
does
depend
on.
G
You
know
how
many
actions
you
have
and
if
it
is
a
true
to
the
power
and
what
not,
but
at
least
there
there
is
more
possibility
of
optimization
right
and
whereas,
if
you
just
add
extra
parameters
to
actions,
they
all
become
the
so
called
associated
data,
and
then
the
maximum
of
of
any
one
of
the
parameters
of
the
actions
is
the
width
of
the
memory
you
need
to
keep
so
so
we
can
do
some
math
and
clearly
you
will
have
one
that's
more
memory
optimal.
So
I
think
writing
code.
D
G
D
C
F
D
F
Sure
yeah
yeah,
because
even
in
the
jeremiah
documentation
I
thought
I
saw
so
the
we
need
to
mean
it
in
the
other
document.
Here
I
thought
I
saw
cases
where
even
the
between
a
direct
was
called
venus
action.
F
D
Examples
right,
yeah,
sorry,
what
I
meant
is
not
genomic
the
layer
in
between
the
application,
the
b
schema.
You
have
two
different
kinds
of
routes:
there.
F
This
is
knotted
there
in
the
master,
but
I
saw
a
pull
request
with
this
and
we
did
purple
in
one
of
the
older
meeting
circuits.
So
so
here
it
say
here
in
this
document.
The
vnet
action
has
both
does
both
going
to
mapping
without
the
overlay
ip
and
top
here.
This
doesn't
have
an
overlay
ip,
and
here
you
have
a
v-net
action,
but
it
does
have
overlapping
both
are
called.
The
action
is
the
same.
The
action
is
good.
Maybe
I
don't
know
if
this
is
a
typo
here.
A
D
F
Change
I
made
was
the
make
file.
I
just
added
the
dependency
for
all
the
p
ports.
Whenever
we
make
a
change
in
the
p4,
it
was
not
building
the
the
json,
then
the
other
change
was
like.
We
just
added
the
drop
action
at
the
end
of
the
pipeline
to
just
to
make
sure
that
when
we
say
drop,
it
basically
drops
here.
C
D
C
Yeah
and
by
the
way,
thanks
for
following
the
the
issues
here,
both
mukesh
and
and
bj,
filed
some
issues
that
we
talked
about.
You
know
verbally
yesterday,
it's
good
to
track
those.
So
thanks.
A
A
Oh,
I
was
doing
a
lot
of
typing
okay
I'll,
take
it
out
all
right
great
and
then
yes,
if
you
want
to
get
with
me
about
what
let's
do
it
over
email,
the
piece
you
believe
is
wrong.
In
the
document
I
can
make
changes
sure,
yeah,
okay,
all
right.
C
Can
we
talk
for
a
minute
about
something
that
came
up
in
this
discussion
about
how
the
the
psy
api
is
generated
from
the
p4
code
and
there's
a
lot
of
implications
in
terms
of
generating
the
official
site
dash
site
api?
How
the
p4
code
is
written?
We
probably
need
to
outline
some
design
rules
or
guidelines
for
that,
because
someone
could
make
something
that
runs
fine
in
their
development
environment
and
they
make
some
innocuous
choices
on
the
table.
Implementation
and
don't
realize
the
impact.
Let's
say
on
the
site:
api:
that's
going
to
affect
everything.
D
C
No,
no!
It's
not
whether
or
not
it's
broken.
It's
the
choice.
The
implementation
choice
that
someone
makes
is
going
to
affect
the
psy
api.
That's
going
to
trickle
all
the
way
up
to
the
sonic
integration
right,
so
we
have
to
design
the
table
so
that
the
resulting
api
is
what
we
want.
I'm
not
worried
about
the
breaking
that
select
follows,
but
how
we
define
things
has
a
lot
of
subtle
implications,
right,
yeah,.
C
Not
everyone
understands
psi
best
practices,
let's
say,
and
I
certainly
don't
have
a
grasp
of
all
the
implications
hidden
or
otherwise.
So
if
someone
defines
a
p-4
table
that
runs
great
in
their
simulation
and
works
and
they
write
tests,
but
then
someone
else
says:
oh
gosh,
that's
not
a
very
ideal
way
to
implement
the
psi
interface
that
comes
out
of
that.
Can
we
do
it
a
different
way?
We
try
to
figure
out
what
some
of
those
rules
are.
If
there
are
any.
D
Yeah
definitely
well,
I
think
I
can
outline
some
basic
ones.
There
is
the
there
is
an
advanced
section
with
regards
to
acls,
but
that
was
basically
just
the
choice
of
implementation,
so
it's
rather
an
exception.
D
Yeah,
probably
we
can
do
something
like
that,
and
there
are.
There
is
future
work
as
well
like,
for
instance,
it's
not
very
clear
how
to
write
p4
program
in
a
way
that
it
will
properly
generate
apis
for
counters.
For
instance,
it's
not
yet
clear
to
me,
but
I
think
definitely
we
can
do
stuff
like
describe.
D
G
Yeah,
that
is
great,
and
that
is
great
guys.
I
think
this
is
you
know
thanks
chris,
for
bringing
this
one
up,
because,
as
we
just
reviewed
this
pr,
you
know
that
that
was
pretty
evident,
that
somebody
made
a
mistake,
but
not
made
a
mistake,
but
you
know
what
what
they
chose
really
resulted
in
some
sort
of
like
compilation
right.
So
I
think,
as
we
define
the
rules,
one
thing
will
be
important
is
how
how
are
we
going
to
enforce
them
as
part
of
the
cicd?
G
C
It
right
yeah,
so
I
see
two
action
items
here:
one
is
start
creating
a
set
of
rules,
design,
rules
or
principles,
and
even
if
it
starts
out
as
a
readme
with
quick
bullets
to
get
the
most
important
ones.
That
are
right
on
top
of
mind,
because
we
don't
want
to
make
this
having
to
write
a
novel
that
never
gets
written
because
you
know
so,
let's
least
jot
down
the
most
important
ones.
C
And
then
the
second
action
item
would
be
create
some
tooling
to
do
some
style
checking
or
something
just
like
you
know,
when
you
do
psi
metadata
generation,
there's
just
tons
of
checks
that
are
done
like
did
someone
change
the
value
of
an
enum
from
the
last
revision
of
psi,
etc.
There's
all
these
scripts
in
there
that
do
that.
We
can
possibly
do
a
similar
thing
for
the
p4.
C
H
Martin,
do
you
have
any
idea
of
how
that
might
be
done?
You
know.
Well,
if
it
comes
to
like
consistency.
D
Across
different
versions
of
psy,
there
is,
I
believe,
as
long
as
dash
api
is
still
in
the
experimental.
D
We
have
a
waiver
on
that,
so
we
don't
need
to
keep
the
order,
everything
else
like
style
checks
and
all
that
it
is
enforced
by
the
api
generation
itself.
So
there
isn't.
D
I
don't
believe
there
is
a
way
to
define
some
kind
of
name
of
the
key
or
parameter
that
will
result
in
invalid
name
in
psy,
except
for
those
cases
like
what
was
found
with
this
pr,
where
the
same
parameter
is
is
found
in
more
than
one
action.
But
that's
that's
where
we
need
to
actually
do
improvements
inside
api
generation,
not
to
write
p4
program
in
a
different
way,
and
that's
why
I'm
insisting
on
doing
it
the
right
way
to
actually
change
the
api
generation,
make
it
smarter
generally.
What
I'm
trying
to
do
is.
D
But
if
we
find
something
like
that,
usually
it
will
be
a
signal
that
we
need
to
improve
site
api
generation,
not
to
write
the
p4
program
in
a
different
way.
And
that's
why
I'm
insisting
on
that.
We
don't
need
to
make
workarounds
in
p4.
We
need
to
define
two
different
actions:
no
additional
booleans,
nothing
like
that
and.
C
You
don't
think
the
p4
code
should
just
have
a
valid
validator
after
it's
compiled,
not
really
okay,
but
we
agree
that
we
need
something
to
catch
things,
that
you
know
discourage
practices
that
don't
fit
our
conventions
of
some
sort.
D
Yeah,
if
we
will
find
a
real
example
of
such
thing
for
now,
what
I
saw
it
was
that
psy,
api
generator
is
not
working
as
expected.
Okay,.
B
All
right,
hey,
christina.
B
B
Right
can
folks
see
this
yeah
all
right,
so
I
had
some
questions
on
the
vip
table,
the
ethernet
address
map
and
the
pa
validation
table.
Let
me
just
go
through
these
one
at
a
time,
so
the
the
vip
table.
So
my
first
question
is
so
I
think
I
know
what
this
is
for
it's
to
ensure
that
the
destination
ip
address
on
the
outer
header
matches
one
of
the
vips
that
we
advertised.
B
D
Yeah
right
site
api
generates,
like
the
ip
address
that
you
can
pick
from
it's
a
it's.
A
bug
should
support,
as
we
have
in
other
places,
a
boolean
flag
that
indicates
if
it's
before
or
b6.
Basically,
the
family
okay
needs
to
be
improved,
but
that's
the
meaning.
B
Okay,
sure,
okay,
my
second
question
is
that
I
noticed
here
after
the
table
apply
is
invoked.
B
B
Inconsistency
or
if
there's
some
rules.
D
It's
a
bug
because
this
behavioral
model
wasn't
tested
thoroughly,
especially
for
the
cases
where
you
for
the
negative
cases
where
you
need
to
drop
it
back
for
some
reason
and
you'll
find
stuff
like
that,
when
we
will
have
negative
test
cases
that
want
to
ensure
that,
with
this
specific
field,
meaning
that
something
is
not
really.
D
Done
properly
like,
for
instance,
we
don't
have
this,
as
you
mentioned
web
programmed
or
maybe
I
don't
know
eni
programmed
for
this
mac
address
package
should
be
dropped.
We
don't
have
these
negative
use
cases,
so
you
will
find
these
inconsistencies
till
then.
Probably
there
will
be
like
a
major
task
of
revamping
all
of
the
drop
logic
in
the
pipeline.
B
Okay,
okay
and
the
last
question
on
the
vip
table
was:
should
the
deny
action
be
marked
as
default?
Only
so
I
think
this
means
in
p4
that
you
can't
actually.
C
D
B
D
Yeah
here
it's
interesting
because
I
really
would
want
to
have,
as
you
said,
only
accept
action
and
deny
is
default
only.
D
However,
there
is
an
implication
on
this
psy
api,
because
what
we
have
in
here
is
that
this
entry
will
generate
like
an
empty
attribute
list
which
say
doesn't
like
if
we
don't
have
any
any
parameters
to
choose
from
and
having
only
one
action
results
in
an
empty
attribute
list.
So
there
is
like
more
to
that.
That
needs
to
be
solved
how
we
properly
model
that
with
site
apis.
Maybe
this
would
be
the
object
where
the
attribute
is
the
ip
address,
because
right
now
it's
an
entry.
D
And
if
you
look
at
this
entry
inside
api,
there
is
entry
itself
that
has
the
ip
value
and
then
attribute
list
allows
you
to
choose
from
accept
or
deny
action.
If
we
would
say
that
deny
is
default
only
then
there
is
only
accept,
which
is
only
one,
and
this
attribute
is
redundant.
We
are
left
with
the
empty
list,
which
is
a
little
bit
ugly,
like
both
ways
is
ugly.
So
I'm
trying
to
think
how
these
kind
of
let's
say
almost
atomic
checks
need
to
be
properly
expressed
inside
as
well.
F
D
F
B
Okay,
so
the
next
table
I
had
a
question
on,
is
the
ether
address
map
table
and
I
think
you've
addressed
this
with
what
you
said
before
about
negative
testing.
So
we
look
up
the
mac
address
and
determine
the
eni
from
it.
B
B
Okay,
okay
and
the
last
table
is
the
pa
table,
the
pa,
sorry
validation
table,
and
this
one
I
I
wasn't.
I
I
understand
the
the
idea
of
like
a
validation,
but
I
was
not
really
clear
on
how
this
table
would
be
used.
B
B
And
it
seems
like
a
like-
I
I'm
not,
I
have
to
admit
I'm
not
super
familiar
with
the
whole
like
the
way
data
centers
are
constructed
and
everything,
but
that
seems
like
a
possibly
a
large
number
of
entries
in
this
in
this
table
if
you
have
to
enumerate
every
valid
possible
source,
so
I
wasn't
sure
if
that's
that
was
the
purpose
of
the
table
or
if
it
was
really
trying
to
so.
D
The
scale
is
equal
to
the
scale
of
c,
a
to
p
a
mapping.
Basically
it's
a
it's
a
two-way.
D
Let's,
let's
say
it's
two-way
communication:
you
have
the
outbound,
where
you
map
from
ca
to
p8,
so
you're
saying,
if
I'm
sending
a
packet
to
if
I
was
programmed
to
be
able
to
communicate
with
that
other
eni,
meaning
I
have
an
entry
in
ca
to
pa
table,
then
I
should
be
able
to
accept
packets
from
them
as
well.
So
what
happens
in
reality
is
that
controller.
Only
programs,
the
mapping
table
and
inbound
validation
table
is
programmed
as
a
result
of
it
as
a
side
effect.
D
F
Thanks,
I
have
the
same
question
as
well,
but
how
do
we?
How
is
this
table
going
to
get
populated
so
from
each
so
just
trying
to
see
how
the
gnmi
model
data
would
be
converted
to
this
one.
D
D
F
D
D
Yeah
yeah,
it's
like
it
has
to
be
done
automatically
by
sonic
software
by
the
york
agent.
So
this.
C
C
F
Just
to
go
ahead
so
just
to
just
to
clarify
so
whenever,
whenever
the,
whenever
we
provision
a
ca
to
pa
entry
via
gnmi,
the
arc
agent
should
loop
through
every
ni
in
the
system
and
then
our
every
ni
in
that
particular
v-net
and
create
an
entry
here
for
each
of
those
c
entries.
D
F
F
B
Okay,
that
ties
into
my
last
question
about
the
the
keys
to
the
this
table,
because
in
the
p4
code
the
eni
id
is
not
determined
at
the
time
the
table
lookup
happens.
B
D
C
Well,
I
would
even
change
the
question
a
little
bit
saying:
we've
identified
at
least
three
or
four
or
five
loose
ends
in
the
p4
code
that
are
acknowledged,
but
we
don't
have
we're
not
tracking
them
we're
just
keeping
them
in
mind.
Do
we
want
to
transition
to
where
we
make
a
list
or
file
issues,
because
pretty
soon
we'll
have
20
things
keeping
track
of
in
our
minds
and
not
written?
What
do
you
think?
Martin?
D
Yeah,
I
think
issues
has
have
to
be
opened.
I
I
think
one
major
can
be
opened
like
to
do
proper.
D
Well,
I'm
not
sure
do
we
need
to
have
an
issue
per
table
that
doesn't
do
drop
properly
on
miss.
That's
one
thing
yeah
also
about
the
pa,
validation.
That's
another
one.
B
C
Similarly,
yeah
and
michael
miele
documented
how
to
make
checklists
inside
issues,
so
you
don't
have
to
have
an
issue
per
item.
You
can
just
have
an
issue
like
handle
drop
cases.
Then
you
put
a
little
square
bracket
with
an
x
in
it.
It
populates
like
a
checklist
item
in
the
in
the
issue
and
you
can
track
them
like
that
way.
It's
in
the
github
rules
document.
A
Can
I
can
try
and
find
that
for
you
bud
and
send
it
to
you
an
email
sure
if
you
want
or
or
you
can
try
and
find
it,
I
mean.
C
Okay,
yeah,
I
I
I'm
just
thinking
I
mean
I
have
a
list
of
to
do's
in
the
p4
code
as
well,
but
in
my
mind
and
pretty
soon
you
know
we're
all
going
to
have
a
little
mental
list.
We
may
as
well
start
getting
in
writing.
C
A
A
F
Had
one
question
about
the
drop
one
follow-up
question:
so
when
there
is
a
drop,
should
we
drop
it
immediately
I
mean,
should
we
do
that
return
immediately,
or
should
we
wait
until
the
I
mean
go
to
the
end
of
the
pipeline,
because
there
is
a
eni
meter
with
a
drop,
so
that's
the
correct
way
of
handling
the
drums.
D
D
I
Should
we
carry
like
a
drop
bit
in
the
meta
field
and
then
yeah
count
it
somewhere
and
then
finally
drop
it.
C
Yeah
and
we
need
a
mark
to
drop
instruction
at
the
end
of
that.
If
the
metadata
is
marked
drop,
that's
not
in
the
code
either.
F
So
that's
mean
my
peer
has
that
to
have
the
mark
to
drop,
but
yeah
we
have
scenarios
where
it's
drop
even
before
it's
returned
before,
so
we
should
handle
it
in
a
common
way
by
just
setting
the
bit
and
letting
it
fall
to
the
end
of
the
pipeline.
Then
get
dropped
there.
F
D
A
Right
so
number
142
came
in
marion
just
asking
for
a
review
here
yesterday.
This
is
the
tunnel
table
in
the
pipeline.
So
fyi
did
you
want
to
talk
about
this
pj.
I
Hey
sure
yeah
yeah,
if
you
can
quickly
go
over.
I
Yeah
I'm
having
some
issue
with
that,
but
that's
fine
yeah.
I
just
wanted
to
just
go
over
these
changes.
So
basically
this
pr.
What
it's
trying
to
propose
is
segregating
all
the
tunnel
attributes
into
the
tunnel
table
which
is
part
of
the
pipeline,
because
right
now,
tunnel
attributes
are
driven
from
multiple
tables
in
the
pipeline.
I
So
this
allows
us
to
kind
of
manage
the
tunnel
programming
more
easily
because
if
any
tunnel,
only
tunnel
related
attributes
can
go
just
in
this
tunnel
table,
for
example,
and
cap
type,
and
then
the
depo
or
the
outer
headers
can
all
go
in
the
tunnel
table
and
there's
only
a
single
touch
point
from
the
api
point
of
view.
If
any
tunnel
attribute
changes.
I
I
Yeah,
if
you
can
just
scroll
down
so
one
thing
is
currently
there
is
the
we've
added
like
two
end
cap
types,
vxlan
and
nvgre,
although
the
only
vxlan
is
being
driven
from
the
tunnel
table
right
now,
and
the
tunnel
table
itself
has
the
attributes
which
are
the
underlay,
dmacc
and
underlay
depend
in
the
end
cap
type.
D
Yeah
but
those
are
not
really
so:
underlay
dip,
okay,
let's
stick
to
underlay
the
so
end.
Cap
type,
you
mean
vxlan
versus
nvgre.
D
That's
right,
yeah,
okay,
underlay,
but
there
is
other.
There
are
other
things
there
is
vni
or
gre
key.
Whatever
one
depends,
depending
on
the
tunnel
type.
I
Right
so
yeah,
I
think
the
vni
is
something
that
we
have
currently.
We
are
not
yet
moving
it
into
the
tunnel
table.
That
is
something
that
we
are
leaving
it
as
is,
but
that
is
one
potential
option
that
we
can
move
into
the
tunnel
table
the
gre
keys
itself.
That
is
something
right
now.
If
you
see
the
way
the
only
vxlan
is
handled
so
the
gre
keys
is
not
something
that
is
part
of
the
tunnel
attributes,
but
that
is
something
that
we
can
add
as
well.
D
That's
not
really
how
the
encapsulation
for
for
all
of
the
v-net
routes
is
happening
right
now,
because
this
information
is
taken
from
different
places
and
you
don't
necessarily
have
them
all
at
once.
D
If
it
was
the
case
that
you
can
actually
build
the
whole
channel
all
at
once,
but
what
happens
in
reality
is
that
some
of
the
values
are
determined
when
there
is
a
routing,
lookup
and
some
other
values
are
determined
when
there
is
a
c8pa
lookup.
D
Really
demand
a
different
story:
it
should
be
part
of
the
tunnel.
Actually,
it
should
be
part
of
the
underlay
which
is
not
yet
complete,
but
underway
dip
and
vni.
F
So
the
vni-
I
I
think
that's
why
vienna
is
left
out
of
this
one,
because
vni
can
come
from
the
because
there
could
be
multiple
routing
entries
or
ca2p
entries
sharing
the
same
tunnel,
so
the
vmi
is
left
outside
this.
This
has
only
the
actual
underlay
tunnel,
specific
properties
like
the
ip
and
the
type
like
you
said.
The
mac
is
probably
going
to
come
from
the
underlay,
so
we
can
leave
that
out
as
well.
D
Yeah,
so
what's
the
use
of
this
table
really,
we
are
just
collapsing
two
values
into
one
or
actually,
assuming
we
have
only
one
channel
really
used
on
one
dpu,
we're
just
switching
underlay
ip
for
for
a
tunnel
led
so
that
underlay
ip
will
be
determined
later.
I
So,
for
example,
something
like
an
admin
state
on
a
tunnel
can
go
into
this
place
rather
than
go
and
touch
multiple
entries.
D
But
but
there
is
no
right,
but
probably
here
I
will
go
back
to
what
chris
mentioned.
What
are
the
rules?
For?
Probably
this
is
the
case
where
we
need
some
guidelines
for
why
we
do
implementation
this
way
and
not
the
other
is
because
there
is
no
tunnel
and
there
is
no
tunnel
admin
state.
There
is
no
notion
of
the
tunnel
in
sonic
schema
and
we
are
trying
to
be
close
to
sonic
schema.
D
So
if
there
is
nothing
like
that,
it
means
that
sonic
will
need
to
now
keep
some
cache
of
the
tunnels
and
keep
all
those
in
directions
and
every
time
we
want
to
to
just
program
a
new
mapping
entry.
Probably
what
sonic
will
need
to
do
is
to
look
up
tunnel
id
put
the
tunnel
id
in
the
right
place
or
create
a
new
one,
which
is
additional
work
on
the
york
agent,
which
doesn't
really
need
to
be
there.
I
Right
right,
yeah
yeah.
I
agree
besides
one
level
of
psi
api
and
additional
side
tunnel
api,
but
the
question
is:
does
it
yeah?
The
question
is:
does
it
make
life
easier
from
managing
tunnels,
point
of
view
rather
than
because
even
for
the
arc
agent,
there
are
multiple
touch
points.
If
some
tunnel
attribute
changes
like
an
end
cap
type
or
even
a
dip
changes
having
to
touch
multiple
entries
or
program
call
multiple
psi.
Api
sports
is
calling
a
single
api
right.
I
So
that
was
the
idea
behind
this,
but
yeah
it
does
add
another
psi
api
to
the
behavioral
model,
and
so
that's
the
question.
I
guess
in
terms
of
whether
this
makes
sense
to
add
this
indirection
or
yeah.
It
does
add
some
work
to
the
arc
agent.
F
Also,
today
thai
is
the
the
concept
of
a
tunnel
is:
is
there
in
this
ip
and
the
science?
Even
sonic
orchestra
does
do
configure
tunnels
and
all
that
this
is
not
a
new
concept.
So
this
is
a
pretty
well-known
concept
of
creating
tunnels
and
it's
the
responsibility.
D
Yeah,
probably
the
tunnel
that
psy
has
today
it
actually
behaves
slightly
different.
That's
my
point.
The
underlay
tunnel
is
what
you're
trying
to
model
in
here.
You
have
a
tunnel
id
and
from
there
you
derive
attributes,
and
here
again
we
don't
derive.
D
And
actually,
if
you
look
at
the
tunnel,
there
are
cyto
the
one
that
we
have
today.
It
has
stuff
like
vni,
mappings,
other
things
which
we
cannot
bring
in
here.
So
the
question
is:
how
do
we
derive
and
dash
all
of
these
attributes?
And
it's
not
done
in
one
place?
D
Doesn't
really
make
sense
and
if
we
will
reduce
this
this
tunnel
table
to
just
basically
what
it
is
today,
I
believe
underlay
dmacc
shouldn't
be
there.
Underlay
dmacc
has
nothing
to
do
with
the
tunnel,
but
underlay
is
the
only
thing
that
we
can
put
there
and
I
don't
see
a
reason
to
have
this
in
direction.
I
Yeah,
I
think,
underlying
type
those
are
yeah.
Underlay
dmac
can
definitely
be
removed
from
here,
because
it's
strictly
not
a
tunnel
property,
so
underlay
dip
right
now
is
pretty
much
the
only
thing
and,
of
course,
the
type
of
the
tunnel.
I
So
I
mean
just
trying
to
understand
in
terms
of
just
the
switzer
api
tunnel.
We
don't
see
how
this
maps
to
the
dash
tunnel
right
because
dash
itself
needs.
The
concept
of
the
dash
pipeline
needs
a
concept
of
the
tunnel
right.
So
yeah.
F
So
is
that
one
of
the
goals
like
keeping
it
as
close
to
the
gnmi
as
possible.
D
C
D
Like
the
gnmi
schema,
that's
why
we
have
the
orc
agent,
as
I
mentioned
before,
like
one
c,
a
to
p
mapping
results
in
two
entries
in
psi,
because
we
need
to
program
the
opposite
direction
for
pa
validation,
but
other
than
that.
I
I
Sure
yeah
sounds
good,
I
think
yeah.
We
just
wanted
to
understand
like
what
is
the
just
the
general
motivations,
but
I
guess
now
we
have
a
more
clear
picture
of
the
general
motivation
that
we
want
to
keep
the
psi
apis
as
close
to
gnma
apis
as
possible
right
and
anything
else
is
not
encouraged.
I
D
Sorry,
but
I
am
three
minutes
overdue
for
another
call,
so
if
it
does
not
consider
me
please
continue,
but
I
will
need
to
drop
thanks.
Everyone.
A
Thanks,
do
you
want
and
with
marion
leaving,
do
you
want
to
save
your
question
for
next
time
or
try
to
cover
it
in
email.
A
Okay,
okay,
so
and
and
bud,
did
you
want
to
file
those
two
items
on
the
p4
or
did
you
want
me
to
do
it
or
I
can
do
it?
Okay,
all
right.