►
From YouTube: DASH HA Working Group 20220614 (June 14, 2022)
Description
June 14, 2022
Discussion of API requirements
A
We
ended
with
talking
about,
we
talked
about,
maybe
how
we
could
use
modes
from
each
technology
provider.
We
talked
about
continuing
with
api
discussions.
Things
like
that,
so
marian.
If
you
want
to
get
started.
B
Yeah,
so
our
goal
is
to
define
a
common
common
control
plane
apis
that
will
be
used
in
sonic
to
be
able
to
establish
a
peering
session
between
two
dpus
to
exchange
all
of
the
state
and
so
on
and
get
the
feedback
from
from
the
dp
about
the
session
state.
B
So
I
have
been
taking
a
few
assumptions
and
topology
constraints
into
defining
this
proposal,
so
I
want
to
go
over
that
first,
we
we
want
to
assume
that
peers
share
the
same
virtual
ip,
meaning
that
there
is.
There
is
no
notion
of
two
dpus
for
the
for
the
host
side
in
case
of
failover.
There
is
no
action
to
be
taken
on
the
by
the
controller
on
the
host
side.
All
the
configuration
there
stays
the
same.
B
Backup
here
advertises
a
longer
path
for
the
web.
So
that's
how
how
one
of
them
is
picked.
B
And
also
some
in
eyes
are
active
on
one
of
the
piers
and
some
are
back
up
on
the
same
pier
meaning
that
for
roughly
half
of
unites
there
will
be
an
active
traffic
flowing
through
that
dpu.
But
the
other
enis
will
be
synced
to
by
by
the
pr
and
voice.
First.
B
C
Hey
so
marion,
I
I
I
don't
necessarily
have
a
problem
with
this,
but
I
kind
of
understood
it
differently.
I
thought
that
it
was
like
some
form
of
ecmp
that
was
like
dividing
like
flows
to
the
you
know
the
to
the
two
dpus
and
not
like
you
know,
like
entire
enis,
are
active
on
one,
and
you
know
back
up
on
the
other.
D
I
thought
that
the
locally
learned
flows
should
be
forwarded
using
that
device
and,
as
we
sync
locally
learned,
flow
information
to
the
peer
who's
participating
in
h
a
you
know.
Those
flows
will
not
be
folded
by
the
peer
device
and
by
you
know,
in
the
same
manner,
the
peer
device
will
have
its
own
locally
learned
flows,
which
it
will
be
forwarding
yeah.
It
could
be
done
both
ways.
It
would
be
good
to
discuss
that.
D
Yeah
as
long
as
the
device
stores
both
sets
of
clothes
anyways,
it
could
be
participating
in
forwarding
for
everything.
E
Question
on
that,
so
what
is
a?
What
does
it
really
represent
right?
This?
Is
it's
not
really
the
or
that
is
there
another
ip
address
for
the
peer
that
it
would
use
for
the
flows
that
it
is
active,
because
if
the
third
sentence
says
that
it's
actually
not
active
backup,
it's
active
active
right.
Some
photo
flows
out
on
appear.
Other
flaws
are
on
the
other
pair.
B
Yeah,
so
this
is
actually
something
that
I
ran
into
while
trying
to
define
the
apis
and
how
the
flaws
should
look
like,
because,
right
now,
my
understanding
there
is
a
virtual
ip
assigned
to
every
gpu
that
is
hosting
a
particular
eni
and
in
order
for
the
for
the
host
that
has
that
vm
to
which
eni
belongs
to
to
reach
the
gpu,
it
will
encapsulate
packet
into
in
the
vxlan
header,
with
the
destination
ip
being
this
virtual
id.
B
Now
the
problem
with
that
is
that,
since
we're
talking
about
having
this
active
active
scenario
where
some
of
e
I's
are
active
on
one
gear
and
other
in
eyes,
are
active
on
the
other
gear,
it
contradicts
a
little
bit
with
the
with
the
topology,
with
the
dp
having
one
whip,
because
it
means
that
all
of
the
all
of
the
traffic,
all
of
the
it's
it's
all
or
nothing.
It's
either.
B
All
enis
will
be
able
to
access
one
vip
that
is
advertised
with
the
shorter
path
from
one
dpu
or,
and
the
backup
will
receive
no
traffic.
So
this
is
this
is
something
that
I
wanted
to
clarify
actually
with
michael.
Unfortunately,
I
don't
see
him
on
this
meeting
so.
B
The
there
are
constraints
that
prevent
us
from
having
just
half
of
enis
active
on
one
on
one
peer
due
to
the
topology,
because,
as
topology
defines
it
we
will
have,
we
will
have
only
one
one
dpu
in
a
pair
that
can
be
active
at
a
time
or
we
would
need
to
change
the
definition
of
topology,
because
how
it
is
defined
right.
Now
that
the
the
active
one
is
defined
by
a
shorter
bgp
path.
B
B
So
that's
that's
a
problem.
That's
an
open
question
that
I
I
would
like
to
sort
out
with
with
him,
but
yes,
probably.
B
A
He
cannot
gerald
will
be
here.
You
know
in
about
15
minutes,
but
let's
we
can
hang
on
to
that
question
for
sure
and
I
do
have
to
drop
and
rejoin
because
I
can't
see
your
presentation
so
but
I'm
gonna
let
the
recording
keep
going,
but
hopefully
he
ju
look
for
him
to
see
if
he
dials
in.
B
Okay,
so
let's
continue
so
probably
some
further
clarifications
will
be
needed,
but
regardless
I
will
move
on
to
the
definition
of
the
session.
B
It
it
is
so
since
a
quick
background,
since
we
are
doing
this
for
sonic,
this
will
be
converted
into
psy
apis.
So
the.
B
The
proposal
here
is
to
introduce
one
new
object,
type,
which
is
hapering
session,
which
has
a
set
of
attributes.
B
How
do
you
identify
a
peer
probably
by
the
ip
address,
but
it
cannot
be
a
shared
virtual
ip
as
it
it
cannot
be
properly
routed
to
to
a
virtual
ip.
So
we
we
should
use
some
other
address.
Maybe
there
is
so
maybe
there
is
a
unique
unique
allocated
address
on
the
dpu,
which
is
another
blue
book
ip
or
maybe
we
can
use
address
assigned
on
the
port
of
the
dpu.
B
So
this
is
something
that
will
probably
need
for
further
clarification.
How
we
do
that-
and
this
is
a
mandatory
attribute,
so
we
the
question
here-
is
what
address
do
we
pick
and
what
will
be
the
requirement
for
for
a
dpu
configuration
in
order
to
be
able
to
establish
a
cha
session,
because
again,
a
virtual
ip
will
probably
not
do.
B
D
Marian
this
ip
address,
are
you
saying
that
that's
the
ip
address
used
for
syncing
actually
information
between
the
two
peers?
Yes,.
B
We
need
to
now,
instead
of
instead
of
so,
the
purpose
of
whip
is
to
to
deliver
traffic
from
the
host,
regardless
of
where
which
gpu
is
active,
right
and
yeah,
or
even
if
we
imagine
ecmp
use
case
again,
it
will
be
load.
B
B
Then
administrative
state,
so
we
this
is
basically
for
the
session
setting
it
down,
will
just
stop
saying
effectively,
stop
syncing
the
information
to
appear,
but
it
will
preserve
the
it
will
preserve
the
configuration
of
that
session
and
putting
it
up
when
both
sides
have
it
up.
It
means
that
the
state
synchronization
can
start.
B
Then
we
have
two
attributes
role
and
eni
list,
so
those
two
are
derived
from
from
the
requirement
that
or
from
the
assumption
that
we
will
have
granularity
of
on
the
eni
level,
and
we
and
the
controller
will
will
tell
dp
which
enis
are
active.
So
for
that
we
will
provide
a
list
of
enis
to
be
synced
with
with
this
session.
So
for
the
active
role,
connections
belonging
to
the
cni's
are
sent
to
the
backup
and
role
is
defined
by
this
attribute.
B
So
those
two
are
also
mandatory
but
again
pending
confirmation,
probably
by
michael-
if
if
this
is
the
planned
way
to.
B
Then
operational
state,
this
is
a
read-only
attribute.
It
is
required
inside.
Actually,
the
next
slide
is
a
notification
about
the
operational
state.
However,
psy
requires
to
have
an
accompanying
attribute
like
which
can
be
used
for
polling.
B
So
it
will
tell
us
when,
when
the
two
devices
are
in
sync,
since
the
session
was
brought
up,
so
we
have
administrator
and
we
have
operational
operational
means
that
they
are
actually
in
sync
and
that
the
failover
is
like
planned.
Failover
is
safe
to
to
be
performed.
B
Then
we
have
a
pair
of
optional
attributes,
so
this
is
this
depends
on
the
implementation,
but
I
decided
to
to
include
them
right
away,
because
there
was
a
discussion
about
that.
But
again
they
are
optional
depending
on
the
implementation
like
if
implementation
supports
batching.
B
We
can
specify
the
batch
size,
those
are
kind
of
like
a
performance
tuning
attributes.
We
can
specify
message
bytes
batch
size,
meaning
how
many
how
many
flows
can
be
compressed
in
one
update
message
and
then
message:
patching
timeout.
This
one
is
the
let's
say,
a
side
effect
of
the
previous
one.
B
It's
the
greatest
latency
allowed
for
a
newly
learned
connection
to
be
sent
to
appear
in
if
batch
is
not
full,
so
under
some
circumstances,
circumstances
where
we
have
not
exhausted
our
batch
size
for
a
specified
amount
of
time.
It
will
be
sent
in
a
shorter
message
to
to
have
a
let's
say,
a
fixed
or
deterministic
latency.
B
So
yeah,
so
these
are
the
attributes
of
the
session.
They
are
expected
to
be
configured
by
the
controller.
C
I
I
just
have
one
comment.
I
just
think
that
think
the
thing
that
you
say
message
batch
size
should
just
say
the
maximum
messages
right
like.
C
B
Yeah.
So.
D
For
the
max
number
of
messages
right,
are
we
going
to
mandate
a
certain
mtu
size,
or
you
know,
just
for
the
sync.
D
B
D
Right
because
it's
all
based
on
the
mtu,
how
much
how
many
messages
we
can
pack
based
on
them
to
you
so
yeah
just
for
the
link
between
the
peers
for
the
sink.
If
needed,
we
can,
we
can
mandate
some
size.
You
know
right.
G
I
guess
that
it's
different
layer
like
from
the
part
of
perspective
it's
it,
sends
a
chunk
in
the
size
of
the
max,
whether
the
network
consent
between
one
packet
or
two
packet.
It's
up
to
the
network,
it's
very
hard
to
correlate
between
those
two,
because
you
really
don't
really
control
the
interface
in
which
this
packet
arrives
or
sends.
And
what
is
the
path
into
you
on
that
industry?.
G
C
Marion,
I
just
have
one
question:
you
said
like
the
controller.
Well,
the
controller
is
you
know
making
this
this
api
call?
Is
it
the
controller
that
has
like
understanding
of
the
capabilities
of
each
device
like,
for
example,
suppose
a
device
can
only
support
a
single
message
per
per.
C
Okay,
so,
okay,
so
like
h,
a
capabilities
would
be
part
of
that
query.
If
you
know,
and
so
that
the
controller
would
understand.
You
know
that
it's
programming
this
api
within
the
capabilities
of
of
the
device.
B
B
H
B
So
I
think
it
can
be
expanded
if
there
is
a
need,
but,
as
I
understand
it
right
now
on
the
granularity
of
eni,
it
is
active
backup,
meaning
that
one
dpu
will
receive
all
the
traffic
for
a
particular
eni
and
it
will
sync
all
the
flows
to
the
backup.
G
B
G
H
I
B
E
Point
on
the
the
previous
thing
that
we
discussed
right
the
vip.
If,
if
the
whip
is
per
eni,
then
you
know,
then
then
it
would
make
sense
of
what
you're
saying
right.
Nha
group
is
exclusively
to
suddenly
nice
to
be
handled,
having
only
one
active
that
way
that
whip
can
be
used
by
the
hosts
to
steer
all
the
traffic
towards
that
appliance,
dpu
right.
In
that
case
your
administrative.
The
happier
session
need
to
have
maybe
another
attribute
to
say
how
do
you
define
that?
B
B
E
B
E
B
B
So
expectation
here,
probably
for
next
time,
when
I
will
convert
it
to
psi,
it
will
be
clearer,
but
the
idea
is
that
you
take
object
of
eni
that
you
create
created
beforehand
when
you
are
creating
eni
when
you
assign,
like
all
of
the
mappings
like
to
from
which
mac
address
this
eni,
is
mapped.
What
are
the
qos
attributes
like
what
is
the
maximum
cps
for
that
eni,
etc?
C
Marion,
do
you
do
you
assume
that,
like
for
a
given
session,
that
any
of
the
enis
in
this
list
can
have
messages
coalesced
with
each
other,
you
know
as
part
of
like
a
bigger
coalesced
message
like
is.
That
is
that
the
reason
why,
like
is
that
sort
of
the
reason
why
you
should
specify
these
as
a
list
of
enis
and
not
call
this
api
like
one
at
a
time
on
each
individual
eni
like?
Is
there
an
implication
to
the
coalescing.
B
C
Yeah.
Okay,
so
I
I
get
what
you're
saying,
but
let
me
ask
the
question
differently:
if
the
controller
were
to
you
know,
combine
a
list
of
va
enis
and
make
a
single
psi
api
call
would
that
create
a
different
behavior
than
if
the
controller
decided
to
make
multiple
api
calls
with
one
eni
at
a
time,
even
though
they
all
have
the
same
attributes.
C
Okay,
so
as
far
as
like
message
coalescing-
and
I
guess
we'll
get
to
that
at
some
point
like
as
long
as
the
the
message
is
to
the
same-
I
I
p
address-
then
they
can
be
coalesced.
E
G
I
tend
to
agree
to
that
because
otherwise
you
can
find
yourself
in
the
tons
of
corner
cases
in
which
the
timer
are
not
the
same.
And
now
are
you
combining
them
or
not
like
what
is
the
benefit
of
creating
multiple
object
session
objects
with
the
same
parameters
again
and
again,
and
the
singularly
and
I
image.
C
I
I'm
just
I
I
I
don't
know
that
that's
what
I'm
asking
like
is
is.
This
is
like
I,
I'm
okay
with
saying.
If
you
do,
that,
that
will
result
in
a
different
behavior
that
will
result
in
like
no
coalescing
of
those
and
if
you
combine
them
all
into
one
api
call,
then,
though,
that
list
can
be
coalesced
together
I
mean
I'm
okay,
either
way,
I'm
just
asking
the
question
of
like:
what's
the
intent.
G
A
G
G
The
scope
here
like
keep
alive
is
not
part
of
right
and
second,
what
what
happened
if
my
peer
is
dead,
I
for
some
reason
I
cannot
send
my
sync
message.
So
do
I
continue
forward
traffic
or
I
I
reject
every
new
sim
pill.
I
ever.
G
But
no,
I
believe
it
should
be
again
keep
if
I
don't
know
it's
it's
a
discussion
for
the
second
one.
I
believe
it's
an
option.
It's
like
some
user
will
prefer
availability
and
versus
like
the
ability,
like
it's
asynchronous.
So
you
some
connection
won't
be
100.
Think
in
that
case,
but
then
it's
it's
a
trade-off
right
and
the
other
option.
Is
you
always
sure
that
your
two
devices
are
in
sync
but
you're
paying
for
that,
because
if
one
of
them
is
dead,
you're
not
getting
any
new
connections.
B
D
Since
this
is
a
high
availability
right
feature,
if
the
pure
is
dead,
then
those
for
those
flows
that
have
been
synced,
we
should
be
forwarding
it.
That
is
the
main
idea
of
the
agent
right
so
yeah.
It
should
be
forwarding
to.
E
D
New
ones,
yeah
new
ones,
right,
new
ones,
okay,
the
new
ones
and
the
events
closest
to
the
failover
right,
the
events
closest
to
the
failover
or
such
events
that
you're
saying
that
the
peer
is
dead
and
cannot
communicate.
Those
cannot
be
fully
guaranteed
and
that
we
can
define
that.
You
know
how
much
can
someone
please
go
on
me.
D
Who
is
that
song
coming
from
christina?
If
you
can
ask
everyone
to
go
and
mute,
someone.
D
D
Okay,
anyway,
events
closest
to
those
you
know
closest
to
failover
cannot
be
guaranteed.
Otherwise,
if
we
are
in
full
sync,
we
have
to
continue.
C
I
I
don't
think
that
that
statement
is
necessarily
true.
I
mean,
I
think,
that
if,
if
you
know,
if,
if
let's
say
the
link
between
the
two
peers
are
is
broken,
you
know
you
could
decide
to
not
forward,
for
example,
a
sin
packet
and
not
even
allow
like
a
new
connection
to
be
established
right
so
like
that,
like
I
don't
think
it's
like
true
that
you
say
like.
Oh,
like
there's,
always
this
uncertainty
around
the
failover,
where
some
connections
are
like
in
an
unknown
state.
C
I
mean,
I
think,
that
you,
you
can
guarantee
that
this
that
you
know,
connections
won't
be
broken
around
the
failover.
G
Again,
it's
a
trade-off.
It's
it's
clear
that
you
can
guarantee
it's
up
to
you
to
the
user
to
decide
what
you
prefer,
100
guarantee
and
then
most
likely
other
thing.
Synchronization
is
a
synchronize
all
the
they're
always
synchronized
in
case
of
backup
your
peer
failure,
you're
not
getting
any
sin
versus
something
which
is
more
loose,
but
most
likely
will
give
you
more
performance.
C
I
agree
that
there
are
trade-offs
and-
and
I
also
think
that
that,
like
that,
the
vendors
should
have
flexibility
in
which
of
those
they
support
and
the
buyers
should
have
you
know
their
own
sets
of
requirements
as
to
what
they
require
right.
But
I
I
agree
with
you:
there
are
many
trade-offs
with
respect
to
the
aha
algorithms.
H
I
mean
it's:
it's
a
function
of
scale
and
the
deployment
scenarios.
Here
we
want
to
contend
with
right.
I
guess
to
make
these
trade-offs.
So
do
we
want
the
api
to
be?
You
know
flexible
enough
to
do
that
or
or
do
we
want
to
kind
of
hardwire
it
in
a
way
that
we
can
organically
improve
on
this?
As
time
goes,.
C
I
mean
I
put
out
a
proposal
that
that
that
tried
to
show
like
a
way
that
it
could
be
done
without
requiring
the
ap
like
these
setup
apis
to
to
have
knowledge
of
it.
You
know
where,
like
the
receiver
of
the
sync
messages
is
invariant
it.
It
just
has
a
very
fixed
behavior,
but
the
sender
of
the
sync
message
has
a
lot
of
flexibility
as
to
whether
it
wants
to
do
things
loosely
or
statelessly
or
statefully
so,
like.
C
G
I
can
I,
but
I
can
implement
both.
I
can
implement
the
loose
approach
and
the
fully
sync
approach
I
can
implement
both
believe
me.
So
that's.
G
C
It's
a
tradeoff,
but
but
what
if
there's
like
you
know
a
hundred
variations
of
loose,
you
know,
do
you
want
to
expose
all
100
variations
of
loose
as
something
that
that's
like
defined
in
dash
in
the
psi
api?
Or
do
you
want
those
hundred
variations
to
be
something
that's
like
configured
outside
of
psi.
C
C
B
C
To
50
different
trade-offs
they
can
make
and
they
make
sense
in
different
use
cases.
Do
we
have
to
define
all
of
those
and
agree
to
all
of
those
and
what
they
are
or
is
there
some
way
that
we
can
allow
for
that
flexibility
without
having
to
have
agreement
like?
I
think
that
there's
a
way
to
make
them
all
interoperate
without
having
to
agree
on
what
they
all
are.
G
C
You're
saying
there's
two
different
approaches.
I
think
that
there's
200
different
approaches
I
mean,
I
think
that,
like
there
are
all
different
forms
of
looseness,
for
example,
it's
not
just
like
like
strict
and
loose,
I
mean
it's
like
you
could
be
very
loose,
you
could
be
less
loose,
I
mean
there's
there's
like
what
what's
defined
as
loose
again,
I
don't.
I
understand
what
is.
G
And
okay,
you
may
have
a
query
capability:
that
user
vendor
will
tell
you
what
will
be.
What
would
what
is
the
probability
for
you
to
be
out
of
sync
whatever?
So,
yes,.
C
Yeah
I
mean
I
I
I
I
think
like.
Maybe
it
can
be
abstracted
into
something
like
like
a
va
like
a
value
of
like
your
loose
value
or
whatever
like
like
it.
It
should
be
abstracted
into
into
something
that,
like
each
vendor
can
can
decide
what
that
means
to
them.
I
mean
like
I'll,
give
you
an
example.
C
You
know
there's
you
know,
there's
potentially
like
seven
state
updates
for
a
connection.
Maybe
you
know
maybe
maybe
more
like
there's
periodic
ones
too.
If
the
connection
is
long-lived
right,
maybe
maybe
in
some
cases
you
don't
even
sink
the
sin.
You
only
sink.
The
sin
act
like
there's
like
many
choices
you
can
make
about,
like
which
of
those
seven
events,
do
you
want
to
sink
and
which
ones
do
you
not
want
to
sink
like
in
terms
of
being
loose?
C
And
you
know
that
creates
a
lot
of
very
potentially
a
lot
of
variations,
also
like
when
you
talk
about
strict,
maybe
only
certain
events
you
want
to
be
strict
on,
but
other
events
you
want
to
be
loose
on
so
that,
like
it's
not
like,
like,
I
don't
see
it
as
it
is
that
there's
just
like
two
modes
and
you
can
support
both.
I
see
is
that
there's
many
many
many
trade-offs
that
can
be
made
in
in
and
they
could
make
sense
in
different
use
cases
and.
J
John
though
the
way
I
understand
you,
it
seems
like
you
know
that
what
you're
suggesting
is
that
certain
capabilities
that
you
want
to
introduce,
let's
say
at
the
receiver
side
right
and
then
at
the
receiver's
side,
thai
api
is
flexible
enough
to
really
you
know,
give
these
kind
of
requirements,
and
these
kind
of
I
should
say
you
know,
attributes
setting
of
the
attributes
to
say
that
hey
what
type
of
capabilities
you
are
setting
it
up
and
what
do
you?
What
would
you
like
receiver
to
do
right
now.
C
I
think
it's
the
sender
that
has
like
a
lot
of
flexibility,
but
I
think
that
it's
like
each
vendor
like
may,
come
up
with,
like
better
approaches
or
different
approaches
or
different
trade-offs,
and
why
can't
we
just
like
abstract
it
into
some
kind
of
like
h,
a
quality
parameter
or
something
like
in
in
in
that
quality
value
has
a
meaning
for
each
vendor
from
you
know,
h
a
quality
of
one
to
an
h,
a
quality
of
a
hundred,
because,
like
I
don't
think
that
you
can.
C
I
I
just
don't
feel
that,
first
of
all
that
it's
worth
us
defining
like
every
possible
trade-off,
because
there
are
so
many,
I
think
it
would
be
better
abstracted
into
some
some
kind
of
something
abstract.
And
then
you
know
give
a
lot
of
flexibility
to
each
vendor
to
decide.
You
know
not
just
the
implementation
but
like
which
trade-offs
they
want
to
support
and
and
do.
H
A
F
D
For
the
eni
list
here
we
say
that
for
active
role,
connections
belonging
to
these
unis
are
sent
to
backup,
which
means
that
the
controller
will
never
assign
the
same
set
of
enis
to
the
other
peer
of
the
session.
B
Why
not
it
will
assign
those
enis,
but
the
session
will
be
maybe
back
up
or
also
it
may
be
active
like
if
we
expect
flows
to
be
distributed
across
dpus.
B
If
there
will
be
use
case
for
that,
those
two
can
be
active
and
then
sending
sync
messages
to
one
another.
If
there
is
a
clear
active
backup
for
that
eni,
one
of
the
sessions
will
be
configured
as
active
to
send
another
one
will
be
configured
as
backup
to
to
clearly
tell
the
dpu
to
accept
to
accept
flows
that
belong
to
that.
E
Enid
right,
so,
basically,
what
you
said
is
the
controller
will
assign
certain
dpus
to
be
active
for
a
given
set
of
vnr
enis,
and
it
would
also
assign
other
backups
correct.
Okay,
so
from
a
forwarding
perspective,
it
will
be
only
one
dpu
who
would
receive
the
traffic
from
the
hosts
for
that
eni.
B
D
D
If
there
are,
if
both
peers
have
the
eni
list
right
configured
by
the
controller,
then,
and
then
they
will
both
be
an
active
role,
possibly
then
we'll
need
to
have
a
separate
attribute
that
says
sync
connections
or
not,
because
other
side
will
already
have
it.
You
know.
G
K
Hi
miriam,
if
I
mean
the
nature
of
active
or
backup,
is
based
on
the
traffic
right
I
mean
it's
not
so
much
of
the
controller
will
dictate
that.
Isn't
it
because
depends
on
the
load
balancing
across
the
dpu,
I
mean
if
you
receive
the
flow
and
you
processing
it.
You
are
in
the
active
role,
then
you
are
automatically
synced
to
your
peers.
B
Now
I
I
think
it
should
be
instructed
by
the
controller,
to
avoid
unintended
consequences.
There
should
be
an
explicit
instruction
from
controller
telling,
please
sync
those
unites,
or
please
only
please
accept
those
cni's.
B
K
No,
that's
the
reason
why
I'm
asking
if
the
role
of
active
backup
need
to
be
explicitly
set
by
the
controller,
because
this
is
the
basically
the
load
balancing
from
the
server
that
will
dictate
what
dpu
will
receive
the
new
flow
right.
And
then,
if
you
know
you
always
have
an
h
ap.
If
you
processing
the
new
flow,
then
you
would
have
to
sync
that
flow
to
your
peer.
K
B
So
if
you
have
load
balancing,
it
is
active
active.
If
you
have
a
cmp,
it
is
active
active.
If
you
have
one
that
is
advertising
a
shorter
bgp
path,
it
will
receive
all
the
flows
for
that
e9
because
it
is
the
only
path
taken
by
bgp.
B
So
if
we
consider
active
active,
it
means
that
each
peer
will
send
will
sink
all
the
flows
that
it
received
to
to
the
other
peers.
If
we
have
active
backup
active
means
that
it
will
again
sync
all
the
flows
to
the
peer,
but
backup
means
that
it
will,
if
it
will
receive
a
flow,
it
is
not
syncing
it
to
the
other
guy.
G
Yeah,
I
I
I
do
agree
that
we
need
to
define
better
why
we
need
a
backup
state
again,
it's
not
the
it's,
not
the.
Actually.
You
can
have
two,
the
two
box
to
be
active
and
still
act
like
an
active
backup
right.
If
you
are
not
doing
ecmp,
you
are
only
doing
shortest
path
right,
so
only
one
will
receive
all
the
sins
and
the.
K
G
Question
is
why
we
need
a
state
backup.
What
is
the,
why
is
what
is
different
in
the
state
backup?
Then
the
state
active,
if
your
answer
will
be
in
backup,
I'm
not
getting
any
new
connections.
Every
new
sim
is
not
folded,
because
I'm
a
backup-
and
I'm
not
supposed
to
get
sims
to
my
box.
That
and
I
I
will
understand
what
is
backup
and
then
we'll
figure
out
whether
it
is
needed
this
behavior,
in
which
you
are
rejecting
any
new
scene
and
you
are
receiving
only
old
connection,
like
a
established
already
established
connection.
E
K
Setting
it
does
have
an
implication
when
you
handle
the
failover,
because
if
you
go
with
the
strict
backup
definition
that
means
you're
not
supposed
to
process
anything
new
and
sync.
If
that's
the
definition,
then
you
have
to
wait
for
the
controller
to
come
down
and
change
it
right
and
your
failover
will
have
a
bigger
impact.
G
I
totally
agree.
I
I
agree
that
this
is.
This
is
a
clear
approach
in
which
a
backup
not
supposed
to
possess
any
new
sin
and
only
and
then
you're
waiting
for
the
controller,
either
to
change
your
all
or
to
bring
up
a
new
active
and
then
you
won't
get
any
sins
but
you're
not
following
any
new
sins
at
that
point,
because
it
means
that
most
likely,
you
don't
have
a
backup.
D
For
the
ecmp
part,
it's
still
unclear
if
we
are
assuming
both
will
be
an
active,
active
role
as
configured
by
the
controller,
when
the
controller
expects
that
these
two
pairs
will
be
equal
cost
right
in
that
case,
in
that
case,
the
flows
will
be
distributed,
and
then
you
know
we
and
and
the
role
is
still
active,
so
we
need
a
special
configuration
or
you
know
the
decision
is
left
to
the
device
to
to
to
think
you
know
the
flows
that
it
has
received.
J
So
but
but
in
that,
in
that
case,
are
we
suggesting
that
if
we
have
active
active
where
we
have
ecmp
or
load,
balancing
and
so
forth,
that
we
have
many
to
one
like
many
active,
basically
are
backed
up
by
a
single?
You
know
backup
card.
D
They're,
just
two
one,
there's
just
two
devices
in
a
per
flow
right,
that
one
will
be
receiving
it
and
it
will
be
active
and
the
peer
will
be
the
backup.
So
I
didn't
expect
peer.
Many
to
one
is
just
two.
So
far
is
what
I've
seen
can.
B
Correct
whatever
in
in
ecmp
case,
we
have
fully
replicated
flows
and
we
have
bandwidth
divided
by
by
the
number
of
dpus
and
then,
when
one
fails,
all
the
bandwidth
goes
to
the
other.
One.
D
K
D
Right
and
right
so
so,
then,
if
we
say
that
for
active
role,
connections
belonging
to
these
ni
sent
to
backup
that
is
actually
a
decision
based
on
the
new
flows
that
we
are
receiving,
the
device
is
receiving,
even
though
both
are
marked
as
active
suppose
by
the
controller.
C
On
some
of
the
previous
meetings
there
was
discussion
of
you
know
like
one
direction
of
the
flow
going
through
the
one
dpu
and
the
opposite
direction
of
the
flow
going
through
another
dpu
like
clearly
in
that
case
like
it's
like
you
know
this
like
it,
doesn't
really
have
this
kind
of
role
of
active
and
backup
they're,
both
active
for
the
same
flow
just
for
different
directions
of
the
flow.
G
C
G
G
It's
actually
more
or
can
be
related
to
optimization,
whether
I
supposed
to
get
this
traffic
or
not
whether
to
to
put
it
in
my
hot
memory
like
a
cache
or
whatever,
or
I
can
put
those
flows
more
far
far
from
my
hot
memory
and
then
only
on
demand
put
it
like
move
it
closer
because
in
steady
state,
I'm
not
supposed
to
get
this
traffic.
C
A
A
My
note
says
we
need
scenarios
to
plan
for
this.
However,
michael
does
not
believe
we'll
have
scenarios,
except
perhaps
traffic
from
slp
forwarding
appliances
and
that's
what
I
have
right
now.
So
it's
possible.
I
guess
it's
possible,
but
in
maybe
in
the
future.
A
B
Okay,
so
since
we're
running
out
of
time,
let
me
just
say
that
I
will
put
the
updated
presentation
where
the
old
one
is
and
for
the
next
week
I
will
convert
it
to
psy
and
we
can
go
over
all
the
open
questions
from
this
week.