►
From YouTube: DASH Behavioral Model WG Oct 6 2022
Description
Behavioral Model Workflow README.md
https://github.com/Azure/DASH/blob/main/dash-pipeline/README-dash-workflows.md
NVidia is working on SAI API SONiC changes in priority over bmv2, then will go back to P4c changes
https://github.com/Azure/DASH/pull/240 - Make SAI attrs mandatory for drop-on-miss tables
Big 'P4 Annotations' discussion - Chris to experiment
https://github.com/Azure/DASH/pull/246 SAI bulk add/remove implementation - the idea is to support the definition; we have entries and objects w/bulk create and bulk remove
A
Last
week
we
talked
about
a
test
plan
that
Anton
had
provided
and
oops
go
ahead
and
let
people
in
last
week
we
had
talked
about
a
test
plan.
Anton
had
provided.
We
talked
about
some
bulk
side
apis
to
be
implemented
in
BMV,
too,
and
so
and
also
this
week
was
wondering
if
we
wanted
to
talk
more
about
a
visual
representation
of
the
the
work
we
need
to
do
so
maybe
looks
like
people
are
still
joining.
Sorry
guys,
maybe
I
should
give
this
meeting
till
about
1007
to
start.
A
So
this
is
what
we
talked
about
last
week
about
Anton's
test
plan
that
he
submitted,
and
here
are
the
bauxite
apis,
and
so
I
was
wondering,
though
this
week,
if
it
might
be
a
good
idea
to
maybe
instead
of
the
list
of
work
items
we
have
in
in
our
project
plan,
maybe
represent
them.
Maybe
I
could
do
it
in
a
visual
representation
of
the
different
blocks
of
the
the
simulator,
the
compiler,
the
the
pipeline,
and
maybe
we
could
look
at
the
work
in
a
different
way.
A
C
So
this
picture,
let
me
know
if
you
can
see
it
yet
I.
C
See
one
bit
per
second
Uplink:
it
takes
a
while.
So
this
is
from
the
dash
workflow
readme
under
dash
pipelines
and
I.
Think
what
we
need
to
talk
about,
probably
is
changes
to
the
p4c
compiler
and
the
changes
to
the
behavioral
model
itself.
That
required
and
also
we
have
lib's
side,
that's
underway
in
order
to
make
the
behavioral
model
complete
enough
for
dash
overlay
I.
Think
that's
probably
one
of
the
topics
at
hand,
which
is
that
correct,
Christina.
C
I
think
so
I
didn't
mean
to
do
that
is.
Does
this
diagram
help
put
a
couple
of
those
things
in
perspective?
We
have
this
whole
workflow
working,
but
there's
just
elements
that
need
you
know
fleshing
out
will
have
to
be
a
new
Docker
for
the
compiler
to
handle
stateful
constructs.
You
know
a
new
back
end
for
p4c
or
a
modified
one,
and
and
then
we
need
our
P4
code.
Sorry,
the
P4
code
here
that
you
know
is
a
work
in
progress.
C
We
need
to
enable
those
stateful
behaviors,
which
are
common,
commented
out
right
now,
and
you
know
we
need
to
continue
to
grow.
The
sci
Library,
which
I
know
Marion,
just
put
in
a
a
draft
pull
request
for
the
bulk
apis,
which
is
great
and
Mark
reviewed
that
and
we're
just
waiting
for
test
cases
so
that
we
try
to
follow
our
best
practices
of
having
test
cases
go
along
with
code.
C
A
C
B
I
I
guess
I'm
just
curious.
If
you
want
such
exploded
diagrams
do
we
know?
Has
anyone
volunteered
to
take
on
those
work
items
they
might
be
the
best
person
to
to
people
to
to
create
such
diagrams
of
what
they're
doing.
A
B
A
C
Oh,
oh
right
there
was
yeah,
you
and
I
had
a
discussion
about
that
and
I
can't
remember
what
what
happened.
I
was
going
to
do
some
modification.
A
Right,
I
think
at
that
time
it
was
very
very
long
time
ago,
when
we
didn't
have
the
side
Thrift
at
that
time.
Right
so
now
that
we
have
side
Thrift,
the
arrow
needs
to
be
straightened
instead
of
pointing
directly
to
website.
C
This
should
talk
to
this.
Yes,
well,
we
still
have
some
compile
C,
plus
plus
programs,
actually
in
the
repo
that
do
this
exactly
they
it's
not
the
best
diagram.
It's
kind
of
I
took
some
shortcuts
that
we're
using
this
is
our
python
Thrift
client
Library.
This
is
this:
is
our
workflow
right
now
for
PTF
tests,
so
it
does
go
through
this
way,
but
we
have
some
trivial
tests
that
we
haven't
even
actually
spent
much
time
working
on,
there's
only
maybe
one
that
just
proved
the
library
linked
and
ran.
A
C
C
A
Oh
yeah,
the
coding
we
we
have
a
list
of
items
in
the
GitHub
project.
Okay,
I,
don't
know
if
we
have
everything
I,
guess
that's
what
I'm
trying
to
get
to
is.
You
know
once
we
have.
You
know
the
the
overall,
the
the
P4,
the
the
you
know,
the
different
pieces
that
we
could
list
and
make
sure
we
have
everything
underneath
those.
E
Not
really
because
I'm
bouncing
between
different
areas
and
right
now,
I
saw
a
lot
of
things
with
the
PSI
API
still
so
I
put
that
on
hold,
so
yeah
cannot
provide
the
exact
date
because
prior
PSI
apis
take
priority
for
now,
because
we
need
to
move
on
with
the
with
the
Sonic
changes
that
depend
on
on
size,
so
that
there
is,
there
are
guys
from
Microsoft
that
are
working
on
Sonic
and
we
needed
to
provide
everything
for
them
now.
I'm
doing
the
further
improvements.
E
After
that
I'll
start,
going
back
to
I'll
go
back
to
the
p4c
changes
which,
by
the
way,
I
didn't
want
to
touch
till
till
we
figured
out
what
we
are
doing
with
the
Dockers,
but
I
think
we
we
finalize
that
or
not
Chris.
Did
we
merge
the
pull
request
that
moves
Dockers
to.
C
Hcr
yeah
no
yesterday
I
I
touched
on
it.
I
said
you
know.
I
know
people
haven't
had
a
chance
to
dive
in
deep,
but
regardless
I'd
like
to
merge
it
by
the
end
of
the
week
yeah.
So.
E
C
And
Marion,
just
just
so,
you
know
the
the
workflow
that
I
describe
allows
you
to
work
on
the
side
without
worrying
about
ACR.
You
can
just
use
your
own
repo
or
even
I'll
make
you
know
you
can
use
mine
to
do
like
development
Dockers
and
then
we
can.
We
can
move
it
over
to
ACR
easily.
So
there's
no
dependency.
You
can
really
just
keep
working
the
way
you
are
and
we
can
forklift
it
later.
C
A
Okay,
great
so
Marion
did
you
want
to
present
your
PR,
or
did
you
have
something
you
wanted
to
present
this
time?
Now
that
we've
looked
at
no
we've
done
what
I
want
to
do?
We
chose
look
at
the
diagram,
so
did
anyone
else
want
to
present
something
or
referring
into
two.
E
Yeah,
so
this
one
is
about
PSI
API
generation,
it's
Backward
Compatible,
but
it's
got
improvements.
E
First
of
all,
it's
a
better
documentation.
Second,
it
allows
for
utilizing
PSI
metadata,
tooling
and
in
the
code
implementation.
So
what
it
does
is
that
one.
E
So
we
have
some
objects
and
entries
that
have
attributes
of
other
objects.
So,
for
example,
we
have
eni
and
it's
got
an
attribute
of
v-net
ID
and
we
have
also.
E
Actually,
let's
take
what
you
know.
We
also
have
eni
that
has
attributes
of
the
ACL
group
IDs
and
the
difference
between
those
two
is
that
v-net
ID
is
mandatory.
You
cannot
create,
we
cannot
create
eni.
That
does
not
belong
to
any
unit.
E
You
can
change
the
v-net
later,
if
needed,
that's
a
possible
scenario,
but
you
cannot
create
eni
that
is
outside
of
the
v-net
and
ACL,
as
opposed
to
that
ACL
is
optional
and
how
it
is
defined
in
that
P4
model.
A
E
No
I
guess
we
don't
have
it
yet.
Maybe
e
and
I.
E
Okay,
so
if
we
have
in
the
P4
model
the
table
by
the
way,
all
of
all
of
these
kinds
of
tables
will
need
to
be
fixed
up.
To
look
like
that.
If
we
have
that
by
default,
it
should
drop
a
packet
meaning.
E
E
E
So
in
the
template
for
filling
the
attributes
we
have,
let
me
see
where
is
it
so
we
have
these
parameters.
E
We
will
set
this
piece
of
metadata
that
is
passed
to
the
template
and
if
the
parameter
is
pointing
to
an
object,
ID
that
is
mandatory,
we
will
set
Flags
mandatory
on
create
and
we
also
allow
create
and
set,
but
the
difference
is
that
we
make
it
mandatory
so
that
it
cannot
be
set
to
null
so
that
you
see
right.
So
we
do
not
allow
setting
this
attribute
to
null.
So
this
is
the
change
and
what
it
results
in
in
the
PSI
API.
E
Is
that
attributes
like
v-net
id
eni
id
whatever
object,
ID
that
we
have
there?
They
will
be
now
they
will
become
mandatory.
So
this
is
the
change
and
also
similar
thing
for
foreign.
E
E
Wait,
oh
sorry,
this!
This
is
just
the
action
selector
oh
yeah.
This
is
this
is
just
the
action
selector
and
the
attribute,
and
also
we
need
to
fix
the
fix
the
parameter
itself.
So
we
are
removing
this
allow
null
as
well,
and
we
make
a
condition
basically
the
same
thing
as
it
was
before
we
either.
So
this
is
more
related
to
sign
metadata.
If
it's
mandatory
that
it,
then
the
text
would
be
conditioned
else.
E
It
should
be
valid
only
in
case
if
the
action
selector
is
right,
so
this
stuff
was
there
before
now,
it's
just
to
conform
to
met
to
sign
metadata,
but
the
main
thing
main
change
is
here
and
I
will
also
raise
as
a
reference
to
this
pull
request
a
size
change.
So
it
will
be
more
clear
to
look
at
the
example
what
exactly
changed,
but
right
now
I'm
a
little
bit
blocked
by
the
site
itself,
so
we
need
also
changes
to
same
metadata,
Checker
that
doesn't
allow
that
for
non-object
IDs.
E
So
as
soon
as
this
one
will
be
merged,
it
was
approved
already
as
soon
as
it
will
be
merged.
This
pull
request
and
corresponding
side
apis,
say:
API
changes
will
be
unblocked
as
well.
E
E
G
Just
a
quick
question
on
your
chain:
you
know
thanks
a
lot
for
doing
that,
so
this
for
the
mandatory
parameter.
Are
you
only
taking
care
of
just
the
just
the
create
side
of
it
or
if,
if
the
mentality
parameters
are
required
in
other
than
you
know,
because
if
we,
if
we
support
this
cred
API
right,
so
why
limit
only
to
create.
G
But
but
how
about
you
know
if
there
are
any
parameters
required
in
the
whether
David
or
you
know,
update
or
delete
I
I
didn't
see
the
param
any
flag
or
metadata
specifying
that
thing
as
well.
E
So
here
is
one
of
the
attributes
for
which
this
metadata
will
change.
So
what
I'm
proposing
to
do
is
to
create
to
to
change
the
flags
from
create
and
set
to
mandatory
oncreate
create
and
set.
So
the
operations
that
you
will
be
able
to
do
is
to
pass
this
attribute
when
you
call
create
API
and
also
you
will
be
able
to
do.
Psi
API
eni
attribute,
set
and
change
vnet
ID.
E
E
Acl
group
will
be
different,
so
ACL
group
is
not
mandatory
because
this
table
does
not.
It
is
not
a
drop
on
Miss.
H
E
E
H
E
And
yeah
just
one
thing
in
as
compared
to
the
old
API.
So
this
is
a
good
example.
What
will
change
this
ACL
group
ID
won't
change,
so
we
can
create
eni
without
attaching
any
ACLS
to
it,
which
is
perfectly
fine,
but
we
cannot
create
via
eni
without
v-net.
C
Good
morning,
does
this
Auto
generate
constraint,
Checkers
in
libsi
to
validate.
E
Because
this
is,
this
is
part
of
Psy
metadata
Library,
which
is
generated
by
Psy,
tooling
itself.
G
The
way
I
see
this
thing
Marianne
is
that
you
know
you
you
correct
me
if
I'm
wrong,
you
know
your
objective
here
is
to
ensure
that
we
are
we
are.
We
are
Auto,
generating
some
validation
code
right,
API
such
that
when
you
are,
you
know
with
your
right,
so
so
from
your
Tool
from
your
auto
generation
to
all
going
through
this
P4
code
and
then
determining
which
parameters
are
essentially
going
to
be
mandatory
and
then
also
what
is
what
should
be
there?
G
You
know
allowed
value
so
to
speak
right
like
saying
whether
or
not
you're
allowing
null
or
not,
and
whether
or
not
you
know
these
are
the
mandatory
options
so
forth.
So
so
this
is
yeah.
So
then,
then,
so
in
in
that
case,
what
happens
is
we
we
have
this
one
is
like
an
intermediate
representation,
not
the
individual
representation,
but
at
least
the
dot
Edge
file.
G
With
all
these
flags
that
you
know
setting
this
thing
and
then
the
next
set
of
changes
that
are
interpreted
by
the
code
is
when
they
generate
actual
implementation
code.
Right.
We'll
say
that
how
I'm
going
to
generate
the
implementation
code
of
the
validation
so
I
can
just
take
it
from
all
the
information
on
this.
These
header
files,
in
the
comment
section
as
a.
E
Metadata
yeah
one
thing
is
that
it's
not
even
for
the
library
implementation,
it's
one
layer
above
if
it's
used
actually
so
lip
side
redis.
If
we're
speaking
about
Sonic,
ellipsi,
redis
utilizes,
all
this
metadata
to
do
sanity
checks,
even
before
call
gets
to
SCI
Library
itself.
So
that's
what
it's
intended
to.
So,
if
you
look
at
a
Sonic
and
from
end
to
end
point
of
view
between
the
occasion
and
the
PSI
Library,
there
is
an
RPC
which
also
has
a
responsibility
of
verifying
this
metadata.
E
G
We
have
some
questions.
Speaking
of
this,
you
know
what
what
is
part
of
the
Sonic
versus
what
do
you?
Basically,
you
know
in
the
PSI
and
so
forth.
Right
I
mean
I
I
just
want
to
refer
to
one
like
one
point:
I,
don't
know
whether
this
came
out
as
a
discussion
on
this
one,
but
in
the
previous
PT
last
week's
meeting
there
was
a
discussion
that
you
know:
Sonic,
caches
or
or
basically
has
some
Shadow
state
right,
and
then
there
was
a
question
about
okay.
G
You
know
for
the
get
part
right
that
we
weren't
going
to
either
either
fully
implement
or
fully
generate.
Since
you
know,
Sonic
does
this
thing
right
so
shouldn't
a
PSI
implementation,
be
NOS
agnostic?
Why?
Why
should
we
basically
Depend
and
say
that
okay,
only
Sonic
will
be
running
on
PSI
and
no
other
NOS
will
be
running
on
this
side.
E
No
I
mean
you,
you
can
do
that
I
think
every
Psy
vendor
provides
that
for
at
least
the
switch
side
which
is
outside
of
which
is
used
outside
of
Sonic.
E
But
there
is
a
question
of
priorities
and
I
I.
Don't
really
I'm
not
really
saying
that
it's
invalid
to
do
that,
I'm!
Just
saying
that
I
don't
wish
to
do
that
right
now,.
C
I
have
a
question
about
when
you
generate
this
mandatory
object
in
your
in
your
Ginger
template.
Sorry
in
your
site,
API
gen
underscore
pi,
you
you
look
at
the
table.
Name
you
like
an
eye
on
this
and
you
assign
mandatory's
true.
So
your
your
code,
generator
is,
is
the
one
that
has
the
business
intelligence
to
make
these
relations
right.
E
Well,
it
it
figures
it
out
from
P4
code.
So
if
the
table
and
P4
has
drop
on
mess
policy-
and
it
will
treat
this
table
as
mandatory.
C
C
I
didn't
call
it
a
workaround
I'm,
just
saying
the
level
at
which
it
exists
is
kind
of
if
you're
reading
P4
code.
You
won't
see
this
relation
right,
it's
inferred
and
you
have
to
understand
the
code
generator
to
know
how
this
propagates,
where,
if
you
put
in
the
P4
code,
you
know
annotation
mandatory
or
something
like
that,
which
you
can
put
on
virtually
any
entity.
You
can
do
an
annotation,
you
can
generate
it
from
that
and
that's
the
single
source
of
Truth
versus
a
code
generator
which
has
a
little
bit
of
black
magic
in
it.
C
F
An
idea
I
have
a
similar
question
as
well,
so
before
that
I
had
a
basic
question.
So
when
you
say
depends
on
the
drop
on
this,
so,
for
example,
in
this
in
this
example
here
right.
So
this
eni
table
is
draw
upon
this.
But
are
you
saying
that
you'll
depend
on
the
v-net
tables
drop
on
this
to
determine
whether
v-net
IDs,
mandatory.
E
Yeah
yeah
you'll
need
to
look
at
the
table
that
matches
on
that.
F
F
So
now,
I
think
similar
to
what
Chris
is
asking.
My
question
is
also
that.
Is
it
true
that
in
every
case,
where
it's
pointing
to
a
drop
on
this
table,
it
will
always
be
mandatory,
because
there
could
be
multiple
tables
where
we
could
be
deriving
the
v-net
ID
from
and
some
tables
it
could
be
optional.
Sometimes
it
could
be
mandatory,
isn't
it
better
to
have
seen
the
app
name
attribute
or
something
like
for
the
people
that
we
have
some
tag
there
to
indicate
that
this
isn't
mandatory.
F
A
F
A
You're
saying
that
if
there
is
a
drop
on
mess
result
on
any
table,
those
tables
should
become
mandatory.
Those
objects
should
be
mandatory.
H
That's
something
you
keep
want
to
do
that,
because
looking
in
that
table
may
be
optional,
you're,
just
defining
the
default.
If
you're
looking
into
that
table-
and
you
don't
find
entries,
that's
what
you
define
the
Denard
the
drop,
but
that
still
requires
to
do
the
lookup
itself
and
there's
nothing
in
the
code
or
in
the
P4
structure.
That
says
this
is
a
mandatory
table
right.
E
So
so
you
have
a
field,
you
have
a
metadata
field.
Why
would
you
set
a
metadata
field
that
you
will
not
later
match
on
I?
Think
it's
even
providing
you
with
like
a
way
to
catch
bugs
and
either
the
implementation
or
in
configuration
you.
H
Take
an
example:
you
get
a
you
get
a
result
here,
you
get
a
result.
There
is
a
you,
get
a
field
that
could
be
used
for
an
end
cap,
but
you
could
also
use
it
for
a
lookup
like
alcohol
or
whatever.
It
doesn't
mean
that
these
that
the
lookup
you
potentially
do
is
mandatory.
So
there's
nothing
that
says
the
lookup
is
mandatory.
H
So
if
you
do
the
Rook
up,
yes,
but
there's
nothing,
that
tells
I
mean
if
it's
based
on
a
flag
on
the
packet
that
you
do,
the
lookup
there
again
I
see
what
you
want
to
do
and
I
think
having
a
an
increased
mention
that
having
a
dedicated
parameter
to
say
on
the
table.
This
is
the
monetary
field.
Actually,
that's
a
military
metadata,
it's
a
whole
lot
better!
It's
explicit,
and
you
don't
have
this
behavior
that
sometimes
you
know,
may
not
be
applicable.
D
Yeah
I
guess
one
one.
Another
example
would
be
like
if
the
v-net
ID
was
being
derived
in
the
pipeline
in
two
different
tables,
for
example,
let's
say:
there's
eni
Foo
and
which
is
also
giving
me
net
ID
and
further
down
the
pipeline.
You
have
some
kind
of
P4
logic
to
decide
which
wins
and
then
that's
the
one
which
finally
goes
to
venet
ID
lookup
Vina
table
lookup
yeah.
Maybe
one
of
the
tables
can
just
omit
that
attribute
right.
So
there
could
be
some
pipeline
logic.
E
C
Seems
to
me,
like
that's,
hiding
expertise
in
the
code,
generator
and
knowledge.
That
probably
ought
to
just
be
explicit
I
mean.
Is
it
that
hard
to
mark
up
the
P4
code?
What's
the
what's
the
motive.
G
Yeah
but
I
think
one
of
the
things
guys.
You
know
if
we
say
that
the
only
source
of
Truth
is
before
then.
Why
overload
anywhere
else
like
you
know
whether
generation
code
of
try
to
do
this
thing?
I
mean
I,
agree
that
you
know
we
should
have
a
single
source
of
Truth
from
where
we
generate
these
apis,
and
if
that
means
that
we
have
to
have
certain
annotations
in
the
before
code
to
help
us
generate
this
thing,
then
we
ought
to
discuss
that.
E
H
I
think
it
does
have
the
documentation
of
somebody
trying
to
understand
what
are
my
basic
required
Fields.
Even
when
you
do
data
plane
and
when
you
do
config
like
ellipse
eye,
if
I
know
that
some
some
fields
are
will
always
be
there
on
the
create
I
can
do
some,
my
backend,
maybe
optimize
one
way
or
another.
So
it's
an
indication
that
might
be
used.
It's.
C
C
Besides,
just
scalar
annotations,
like
with
the
parentheses,
there's
structured
annotations
with
square
brackets,
where
you
can
put
key
value,
Pairs
and
all
kinds
of
different
constructs
inside
an
annotation,
that's
very
rich
data,
so
you
know
we
don't
have
to
go
that
way,
but
even
just
having
an
annotation
mandatory.
E
Oh
by
the
way,
not
sure
if,
yes,
since
you're
talking
about
annotation
I'm,
not
sure
if
before
supports
annotations
for
parameters,
I'm,
not
sure
about
it,
we.
F
F
E
C
Yeah
I've
done
extensive
work
with
that
stuff,
where
I
auto-generated
web
uis,
based
on
annotations
on
P4
code.
So
there's
a
lot
of
tricks.
You
can
play
that
most
people
don't
go
into
also
I.
Think.
If
you
look
at
Sonic
pins,
they
might
be
using
annotations
to
sort
of
relate
P4
code
to
Sonic
or
PSI
code.
We.
A
Are
yeah.
A
The
question
is,
we
can
specify
what
is
mandatory
using
annotations.
A
Add-On
misses
in
certain
place
where
the
stateless
lookups
are
before
that
right
and
they
absolutely
become
mandatory
regardless
right,
I
mean
always
for
for
a
decision
to
add
unnecess
later
right,
yeah.
If
it's
needed,
we
can
use
it.
C
C
E
C
I'll
volunteer
to
do
a
little
experiment,
Marianne
and
annotate
some
parameters
and
and
make
a
branch,
and
you
can
look
at
the
output
of
the
P4
info.
A
E
So
there
is
the
bulk
API.
Oh
sorry,
I'm
in
the
wrong
sorry,
so
it's
straightforward
I
just
need
to
complete
it,
but
the
idea
is
to
support
the
definition.
Okay,
let's
go
to
definition.
E
So,
for
instance,
we
have
entries,
we
have
objects,
each
of
them
has
bulk,
create
and
bulk
remove,
so
objects.
Follow
the
signature
of
a
generic
cyborg
object
to
create
function.
I'll
show
you
example
of
that
and
entries
are
have
a
unique
signature
due
to
the
structure
definition.
So
we
want
to
provide
implementation
for
those
in
scileip
for
bmv2,
so
it
results
in
four
new
implementations
that
simply
rely
on
the
non-bulk
functions,
so
we
have
PSI
create
for
objects.
E
So
this
is
the
signature.
We
have
switch
ID
a
number
of
objects.
We
want
to
create
number
of
attributes,
two
dimensional
list
of
those
attributes,
bulk
operation,
error
mode.
I
will
talk
about
that
object,
a
list
of
object,
IDs
and
list
of
status.
E
E
And
there
are
two
modes
of
operation:
there
is
tap
on
error
or,
alternatively,
to
proceed
till
the
end.
So
there
is
an
aggregate
status
which
is
this
one
and
the
function
signature
which
will
signal
status
success
if
all
of
the
calls
succeeded
or
status
failure,
if
only
one
succeeded.
Sorry
if
at
least
one
failed
and
in
case
of
stop
on
error,
we
will
stop
calling
Psy
for
the
next
object
as
soon
as
we
get
the
first
failure.
E
G
G
E
If
this
is
the
mode,
so
there
is
a
mode
that
tells
you
to
okay,
you
can
proceed
even
even
if
one
object
failed,
or
there
is
a
mode
that
tells
you
to
stop.
If
the
mode
chosen
by
the
caller
is
to
stop,
will
stop
we'll
just
return.
G
So
in
that
case,
when
you
stop
on
first
failure,
what
is
the
status
of
the
remaining
first?
Not.
G
E
E
Okay,
all
of
the
information
needed
for
the
caller
will
be
there.
If
he
chose
stop
an
error,
he
will
have
to
only
process
those
up
until
the
error
in
the
object,
statuses
list.
C
Well,
one
thing
that
didn't
occur
to
me:
did
you
consciously
avoid
using
let's
say
the
equivalent
in
people
runtime
of
bulk
apis,
just
to
keep
things
simple,
I'm
calling.
E
Yeah
yeah
I.
Don't
think
we
really
want
to
do
something
that
is
optimized
for
performance
if
we'll
need
to
I'll
I'll
rewrite
that.
But
for
now
it's
just
relying
on
what
we
have
probably.
C
C
But
if
you
were
doing
this
like
for
production,
well,
probably
wouldn't
do
this
anyway.
You'd
want
to
bulk
up
the
the
low
level
API.
H
E
C
G
H
So
so
and
that's
fine
so
in
the
future
there
will
be
no
ever
any
kind
of
requirements
to
support
across
types
yeah.
E
I
think
that,
like,
if
you
look
at
the
notes
as
a
whole,
be
it
Sonic
or
any
other
one
trying
to
even
combine
all
of
those
will
require
to
maybe
do
some
abstraction
in
the
nose
layer
as
well
and
take
care
of
the
dependencies,
because
there
will
be
some.
If
you
want
to
bulk
anything,
you
can't
really
bulk
anything.
You'll
need
to
order
them
having
it
on
one
object,
type
makes
things
easier.
A
A
H
H
H
I
haven't
reached
the
P4.
Let
me
let
me
do
all
that
check
and
I'll
open
an
issue
if
I
find
something,
definitely
the
other
side
level
on
the
attribute
itself.
It's
an
address,
not
a
prefix
but
I'll
triple.
Take
all
that.
Okay,.