►
From YouTube: DASH Behavioral Model WG May 18 2023
Description
PR365 - Adding support for metering (Outbound)
https://github.com/sonic-net/DASH/pull/365
Mentioned in DASH HLD 2.4.2
There was a need to introduce new annotations. Also, the ACL code in P4 has a compile flag - be careful here for bmv2 to SAI generation.
A
Thanks
for
coming
to
the
dash
behavioral
model
group
on
May,
18th
I
think
today
is
the
day.
Mount
St
Helens
blew
up
a
million
years
ago
or
a
long
time
ago
anyway.
I
think
it's
the
anniversary
of
that
today,
so
yeah
I'm
from
Washington
State,
so
I
remember
that
I
think
I
was
about
11
when
that
happened
anyway.
So.
B
A
A
What
I'm
showing
on
the
screen
is
what
we
talked
about
last
time,
which
was
I.
Think
we
kind
of
closed
up
this
conversation
yesterday
about
the
aqua
tags
and
things
like
that
so
anyway,
and
we
we
did
talk
a
little
bit
last
week
about
or
the
week
before,
about
the
the
experiment
that
we're
working
on,
but
we
you
know
it
wasn't
the
highest
priority.
A
So
we
have
that
and
then
today
we
have
these
PRS
in
the
queue
and
I
was
wondering
if
I
think
it
was
VJ
might
have
something
you
wanted
to
talk
about
or
Clark
if
he
joins
the
meeting
from
Alibaba,
so
I
think
that's
what's
on
deck
for
today,
unless
Marion
did
you
have
anything
you
wanted
to
talk
about
or
anyone
else
on
the
call.
C
E
Hey,
can
you
guys
I.
E
Okay,
so
yeah
I
think
this
PR
is
basically
addressing
the
the
design
for
metering,
outbound
metering
that
was
presented
and
discussed
earlier,
the
main
the
metering
requirements
and
also
the
the
metering
design
is
mentioned
in
the
hld,
so
it
just
does
a
quick
overview.
This
is
the
outbound
traffic
metering
behavior
that
we
had
discussed
and
accepted.
So
this
is
what
is
being
incorporated
into
the
BM
V2
Pipeline
with
this
PR.
E
So
there
is
basically
a
meter
class
ID
coming
from
the
policy
table,
outbound
routing
table
and
outbound
the
mapping
table.
There
is
also
a
metered
bucket
table,
so
there
are
two
new
tables
being
introduced
in
this
pier
the
meter
policy
table
and
the
meter
bucket
Table,
and
there
are
two
three
new
attributes
coming
from
the
the
routing
and
the
mapping
table.
So
there's
a
class
ID
there's
a
policy
enabled
Boolean
and
then
there's
an
override
Boolean.
E
So
now
we
can
just
look
at
the
pr
the
changes
in
the
pr
so
yeah,
so
these
set
of
changes
are
basically
for
this
I
API
generation.
So
because
of
the
way
the
tables
are
defined,
there
was
a
need
to
introduce
some
new
annotations
for
generating
the
table
as
an
object,
and
so
these
changes
address
all
the
new.
The
PSI
API
changes
for
the
new
annotations
and
just
going
ahead.
E
Yeah,
so
these
These
are
the
before
changes.
So
so
here
we
can
see
that
in
the
outbound
routing
table
we
have
the
metered
policy
enabled
and
the
meter
class,
which
is
coming
from
every
routing
action.
E
And
we
have
the
from
the
outbound
mapping
table,
we
have
the
same
meter
class
and
then
the
there
is
an
override
which
is
coming
from
the
override
Boolean,
which
is
coming
from
the
mapping
table
and
going
further
ahead
from
the
eni.
We
get
the
policy
ID.
So
there
is
a
V4
and
V6
meter
policy
ID
coming
from
the
eni
table,
so
this
is
similar
to
Ackles,
where
there's
no
inbound
and
outbound.
Here
it's
like
the
V4
meter
policy
and
V6
meter
policy.
E
So
but
the
way
the
meter
policy
is
structured
is
similar
to
the
Ackles,
where
there's
a
policy
table
and
there
is
a
Rule
table.
So
the
meter
policy
table
has
the
meter
policy
ID
and
it
just
as
the
address
family
check,
which
is
similar
to
the
actual
group
table
that
we
have
in
pmv2.
E
And
then
there
is
a
meter
Rule
table
which
contains
the
actual
rules.
Where
you
have
the
meter
policy
ID
and
you
have
the
a
ternary
match
on
the
destination
address
and
the
meter
rule
action
itself
can
give
the
meter.
C
Class
I
didn't
get
one
thing:
the
emitter
policy
table
same
table
is
applied
in
both
directions,
or
we
have
a
table
per
direction
that
can
be
applied
for
the
same
flow.
E
Yeah
so
I
think
this
one
right
now
I've
only
addressed
the
outbound
Direction
meter
policy,
so
there
was
a
clarification
required
on
the
inbound
Direction
whether
the
policy
is
really
required
from
the
requirements
point
of
view
or
not.
That
is
something
that
I
need
to
check
back
with
prints
and
get
back
on
that
because
yeah
I.
E
So
a
meter
Rule
table
has
the
so
this
is
more
simple
than
the
Accel
Rule
table.
It
just
has
the
meter
policy
ID
and
then
the
destination
address
and
the
rule
action.
E
Sorry
yeah:
this
is
basically
priority
based
Tikka
match.
That's
the
requirements
which
was
mentioned,
there's
a
priority
based
a
prefix
match
so
for
meter
policy.
So
that's
why
it
is
ternary
here.
E
Yeah
I
think
yeah.
Sure
I
can
add
a
comment,
but
yeah
I
mean
if
you
guys
look
at
the
SI
API,
which
is
generated.
It
becomes
clear
but
yeah
I
can
definitely
add
a
comment
here.
F
F
E
Yeah,
so
yeah
I
didn't
really
put
The
annotation
here,
because
the
way
this
IPA
got
generated
seemed
to
be
in
sync,
so
I
just
thought:
I'll
just
leave
it
as
ternary.
E
Sure,
okay,
so
so,
then
we
have
the
meter
class.
So
then
the
finally
we
have
the
metered
bucket,
where
the
actual
counting
happens,
the
there's
the
outbound
bytes
counter
and
the
inbound
bytes
counter.
Now
this
meter
bucket
table
itself
is,
is
skied
upon
eni,
ID
and
meter
class
and
the
meter
bucket
action
is
actually
just
the
counter
action.
So
there's
nothing
really
happening
here.
So
the
way
I've
tried
to
model
this
in
bmv2
is
because
we
have
two
counters
outbound
and
inbound
counters.
E
We
can't
have
like
two
direct
counters
for
a
table,
so
instead
I
added
two
dummy
tables
which
are
basically
like
meter
bucket
outbound
and
meter
bucket
inbound,
and
there
are
two
direct
counters
attached
here,
which
is
as
per
bmv2
and
now,
depending
on
the
the
Direction
coming
in
meta.
We
will
either
apply
the
outbound
table
or
the
inbound
table,
so
this
table
is
basically
for
the
PSI
API
generation
and
these
two
tables
are
for
bmv2.
E
So
there
is
a
ignored
table,
so
there
is
no
PSI
apis
associated
with
the
meter
bucket,
outbound
or
inbound,
but
does
IPS
are
associated
only
with
this
meter
bucket
table
here,
but
in
the
bmv2
data
path
the
counters
will
increment
either
in
the
outbound
or
the
inbound
table.
But
there
is
one
TBD
here
is
that
in
the
bmv2
side
lib
we
need
to
kind
of
Stitch
the
right
when
we
do
a
count,
counter
get
on
inbound,
bytes
counter
or
the
outbound
bytes
counter.
E
We
need
to
go
and
fetch
the
actual
counter
from
the
appropriate
bmv2
table.
So
that
is
something
that
is
not
yet
addressed.
So.
E
I
think
that
is
what
I
was
thinking
to
do,
but
I
thought
I
just
wanted
to
get
this
ipis
out
there,
because
yeah
I
think
yeah.
That
is
one
one
possible
way
to
do
this,
that
we
have
some
kind
of
cyan
Edition
here
which
says
that
hey
these
two
counters,
which
are
actually
attributes,
are
tied
to
the
counter
here,
the
direct
counter
here
in
a
different
table.
E
Now,
if
we
can
have
some
kind
of
annotation,
then
probably
in
the
generator
we
can
like
generate
the
code
appropriately
because
unfortunately
yeah
this
is
yet
another
example
of
like
PSI
API
generation
tied
to
bmv2
right.
So
it's
like
some
idiosyncrasy
or
surf
bmv2
spilling
over
to
side
API
generation.
E
So
yeah
going
ahead,
so
there
is
the
so
yeah.
This
is
where
the
actually
the
tables
are
getting
applied.
So
if
you
have
the
policy
enabled
which
is
coming
from
the
route
table,
then
you
apply
the
meter
policy
and
then
you
apply
the
meter
Rule,
and
so
this
particular
logic
is
described
here.
E
So,
as
you
can
see,
the
meter
class
can
come
from
three
different
places
in
the
pipeline
and
we
need
a
way
to
pick
the
right
meter
class
table
which
is
ultimately
used
in
the
meter
bucket
for
counting.
E
So
this
has
the
basically
the
Precedence
logic,
so
the
meter
policy
lookup,
if
it's
enabled
and
meter
policy,
gives
the
meter
class,
then
that
gets
precedence
and
over
the
routing
tables
meter
class
and
the
mapping
can
override
it
on
believe
this
mapping
override
Boolean
is
set.
Otherwise
whatever
is
coming
from,
the
policy
is
taken,
so
I
mean
that
whatever
is
described
here
is
kind
of
defined
in
this
logic,
so
yeah.
So.
E
Finally,
you
pick
one
meter
class,
which
goes
there
are
policy,
meter,
class
route,
meter,
class
and
mapping
meter
class
and
finally,
what
goes
to
a
metered
bucket
is
the
one,
a
meter
class
which
is
chosen
based
on
the
Precedence
rules.
E
So-
and
this
is
the
other
one,
so
there
is
the
meter
bucket
apply
which
actually
doesn't
do
anything
but
I
think
the
compiler
didn't
like
it.
If
I
didn't
apply
this
so
I
I'm
just
doing
an
apply
here
and
if
the
direction
is
outbound,
then
we
do
the
outbound
apply
or
inbound
apply.
Now
these
two
things
are
basically
just
incrementing
the
direct
counters
in
bmv2,
and
that's
the
thing
that
we
need
to
fetch,
and
these
are
the
test
changes
so
just
quickly.
I
just
wanted
to
show
the
PSI
apis
which
got
generated.
E
So
we
have
the
here
create
meter
bucket,
and
then
we
have
the
meter
policy
and
then
the
meter
rule.
So
the
meter
policy
and
the
rule
is
yeah.
Okay,
before
that
I
just
wanted
to
show
the
yeah
in
the
eni.
These
are
the
new
attributes
which
got
generated
in
this
API.
So
there's
an
eni
attribute
V4
and
V6
meter
policy
ID,
and
there
is
yeah.
There
is
in
the
ca
to
PA
mapping.
E
E
And
these
are
the
attributes,
so
yeah
I
think
this
was.
The
interesting
thing
is
for
the
rules
yeah,
so
the
ternary
match
it
gets.
It
becomes
a
dip
dip
mask
and
a
priority.
H
Can
I
ask
a
question
about
this
I
so
I
understand
why
you're
saying
it's
not
an
LPM,
because
it's
got
priority,
but
from
the
perspective
of
The
Masks
The
Masks
will
always
be
sort
of
prefix
oriented
and
not
just
arbitrary
masks.
Right,
yes,
yeah,
like
is
there
any
way?
We
can
express
that
in
the
API
like
that
that
that
the
masks
aren't
allowed
to
be
just
like
arbitrary
random
masks,
but
a
prefix
oriented.
H
Well,
yeah
yeah
I
mean
I,
understand
why
it's
not
like
an
LPM
from
the
P4
perspective
and
because
it's
got
a
priority,
but
I
think
it's
like.
If
we
know
that
these
masks
are
always
going
to
be
in
sort
of
a
prefix
form,
I
think
then
certain
data
planes
could
take
advantage
of
that.
And
but
if,
if
the
mask,
if
the
API
says
it
can
be
an
arbitrary
mask,
then
that's
yeah
a
harder
thing
to
to
do
right.
E
Right
yeah
agreed
so
yeah
I
think
we
have
a
precedence
for
using
dip
as
ternary
like
in
inbound
routing.
Also
there
is
a
similar,
a
precedence
where
we
have
I
think
there.
It
is
Sip
and
it's
a
similar
thing.
Sip
sip
mask
and
priority.
So
I
was
just
like
kind
of
riding
on
that
precedence,
but
yeah
you're,
right,
I,
think
I,
don't
know.
If
there's
some
way
are
you
saying
we
should
generate
some
comment.
H
Here
yeah,
maybe
it's
a
comment,
or
maybe
it's
the
the
API
takes
like
a
instead
of
a
mask,
takes
like
a
length
and
then
that,
like
by
definition,
constrains
what
the
masks
can
be
I'm.
Okay,
if
it's
just
a
comment
but-
and
you
know,
if
an
arbitrary
mask
came,
we
could
fail.
The
API
I
just
want
to
make
sure
that
it's
like
at
least
known
that
the
definition
of
this
is
that
these
aren't
intended
to
be
just
like
arbitrary
masks
but
sort
of
prefix
oriented
masks,
but.
B
H
No
I
think
the
reason
is
Andy
that
you
could
have
like.
Let's
say,
a
more
specific
prefix,
that's
at
a
lower
priority,
and
so
like
the
covering
prefix
at
a
higher
priority
would
be
what
you
want
to
match
on
right.
B
H
D
H
Yeah
I'd
like
to
constrain
it
so
that
the
masks
can't
be
arbitrary,
that
they
have
to
be
prefix
oriented.
Because
that's
that's
really.
The
requirement.
E
Okay,
yeah
yeah
I,
think
yeah
I
mean
given
the
fact
that
this
is
iip
address.
Hopefully
it's
yeah
the
mask
is
it
should
not
be
given
as
arbitrary,
so
yeah.
We
can
look
into
that.
But
just
one
point
is
that
we
do
have
other
instances
which
were
introduced
before
which
kind
of
follow
the
I'm
just
following
the
same
path
but
yeah.
We
should.
F
Okay,
can
you
go
to
this
IP
the
attributes
that,
when
you
fetch
the
buy
account.
E
Yeah,
so
there
is
a
so.
This
is
the
meter
bucket,
so
basically
yeah
when
we
create
the
meter
bucket.
We
give
the
eni
in
the
class
which
is
attributes
and
then
what
you
get
is
the
metered
bucket
ID.
So
yeah
I
mean
like
in.
E
So,
okay,
so
this
for
the
byte
count,
yeah,
that's
a
good
question,
so
I
just
so.
This
is
also
something
which
is
kind
of
unique
to
this
meter
bucket.
So,
basically,
there
are
two
attributes
which
are
meter
bucket
attributes
which
are
generated
as
read-only
attributes.
So
the
idea
is
that
when
we
do
a
get
on
these
attributes,
we
get
the
counter
now
yeah.
We
need
to
somehow
tie
this
to
the
BMV
to
direct
counter.
That's
the
silib
part
that
I
was
talking
about,
which
is
not
yet
done.
F
E
So
yeah
so
I
guess
the
inbound
and
outbound,
because
it's
tied
to
a
flow
right
so
anytime
a
flow
is
created.
You
have
the
bi-directional
flow
created,
in
other
words,
in
the
data
path.
E
You
are
provisioning,
both
the
counters,
whether
it
increments
or
not,
is
dependent
on
how
the
actual
packet
path
is,
but
I
think
the
byte
counters
itself
are
like
actually
provisioned
in
the
hardware
and
as
to
the
clearing
part,
so
I
believe
create
because
it's
tied
to
a
meter
class
and
it's
tied
to
like
accounting
traffic.
When
you
create
a
new
meter
class-
and
you
are
instantiating
a
new
bucket,
it
is,
it
starts
off
as
a
zero
counter,
and
it's
pretty
much
increments
for
the
lifetime
of
that.
C
E
F
That's
I
mean
yeah
any
kind
of
platform.
Typically,
when
you
have
counter
at
least
at
the
Seattle
level,
you
got
to
show
player
that
kind
of
stuff
right.
So
do
we
even
care
to
implement
a
clear
here
or
that's
going
to
be
taken
care
of
by
by
the
airport
layer,
especially
since,
if
those
are
only
32
bits,
They're
Gonna
Roll,
if
they
were
64-bit,
that'd,
be
different
but
30
to
bit
They're
Gonna
Roll.
E
Right
so
I
think
we
can
make
this
64-bit,
that's
something
that
I
can
check
so
yeah
I
think
it
should
probably
be
a
64
okay,
64-bit
counter
here
right,
so
you
can
change
that
part.
E
As
far
as
the
clearing
is
concerned,
I,
don't
think
that
was
part
of
the
requirement,
because
once
a
bucket
and
class
which
is
associated
with
the
bucket
is
instantiated,
it's
pretty
much
exists
till
that
class
goes
away
and
probably
a
new
class
can
use
the
same
bucket
area
at
which
time
it
is
anyway,
it's
a
new
create
and
then
it
starts
off
as
zero.
So
that's
what
I
understand.
So
that's.
Why
there's
no
like
a
clear
API
here.
F
I
So
what
is
the
requirement
is?
Is
it
like
the
same
pocket
for
both
inbound
and
outbound
traffic,
for
the
same
flow
is
the
way
currently
yeah.
I
E
And
the
meter
policy
itself,
the
meter
policy
and
the
meter
rule
is
similar
to
our
Akil.
This
iaps
is
also
pretty
much
similar,
so
you
have
the
meter
policy.
You
have
the
IP
address,
attribute
to
create
the
meter
policy
and
meter
rule.
Just
has
the
policy
and
destination
IP
and.
F
E
Yeah
yeah
right
so
I
think
we
don't
have
that
list.
At
least
here
per
meter
rule
there's
only
one
IP
address
yeah
yeah
I
understand
what
you're
saying
so.
I
think
that
there's
a
there's,
a
discrepancy
right
between
what
bmv2
says
and
what
the
API
is
generated
for
ankle
rules.
F
E
Okay,
yeah
I,
think
here
it's
just
one
single
IP
address
so
I
think
here
this
there
is
no
real
discriminant,
because
it's
much
more
simpler
right.
It's
just
one
IP
address
that
you
want
to
match
on
there.
C
E
Yeah
I
guess:
that's
it
and
I
think
yeah
I
was
having
some
trouble
just
with,
because
the
new
attributes
were
added
I
was
having
some
trouble
getting
their
tests
to
pass
the
existing
test
to
pass
so
working
with
Chris
on
that
one
thanks
Chris
for
helping
the
with
that
and
Chris
and
Andre.
Also
so
I
think
Andrew
is
looking
at
making
some
size.
C
changes
to
make
these
tests
pass.
G
Very
comprehensive
PR
well
done.
That's.
A
B
Quick
question:
following
up
on
something
you
should
talk
to
you
about
earlier.
You
said
that
there
should
be
counters
that
can
be
updated
for
a
mix
of
some
outbound
and
some
inbound
packets.
B
E
B
E
Yeah
so
I
think
the
BMV
to
the
problem
I
faced
was
this
the
direct
counter,
the
specification
here.
This
is
something
that
bmv2
already
supports
so,
but
you
can
only
support
one
type
of
counter
like
what
I
really
needed
here
was
like
a
way
to
give
like
two
direct
counters
and
in
this
statement,
if
I
could
say,
like
counters,
equals
outbound,
comma
in
bond,
or
something
like
that.
So.
B
E
That
is
a
table
counter
that
yeah
I
looked
at
that.
That
was
just
the
thing
I.
B
E
So
I
guess,
but
there
was
the
other
problem
here-
is
that
we
have
actually
we
are.
There
is
some
logic
involved
right
to
like
to
increment
the
right
counter
table.
We
have
to
look
at
the
direction
in
the
meta
and
then
increment
either
outbound
or
inbound
so
yeah.
It
was
kind
of
hard
to
take
and.
B
E
B
E
E
Yeah
so
I
guess
that
is
the
meter
bucket
ID
that
we're
talking
about
so
I
mean
this
is
basically
a
hash
table
of
eni
and
writer
class
right.
So.
B
C
B
G
Calling
extern
in
an
action
right,
Andy.
B
E
I
see
so
this
is
you're
saying
we
can
have
the
two
counters
defined
in
bmv2
and
then
have
some
extern,
which
has
the
logic
of
actually
looking
at
what
I
have
here
right,
looking
at
the
direction
and
it.
B
E
So
yeah,
but
there
are
two
different
like
attributes
here
right
like.
If
you
look
at
the
side,
the
meter
bucket
table
itself
has
two
different
counter
values
there:
two
you
win
32s
or
64s
here
right,
so
we
have
to
go
and
increment
the
right
counter
attribute.
So
that's
what
I'm
trying
to
model
here
so.
B
B
E
See
so,
but
then
for
what
I
understood
from
the
documentation
is
that
when
you
use
a
counter,
it's
not
a
per
entry
counter.
It's
a
table
counter,
maybe
yeah
I'm
wrong.
I.
B
E
See:
okay,
okay,
yeah,
perhaps
yeah
I
wasn't
aware
of
that!
Maybe
yeah!
If
you
can
just
send
me
an
example
because
I'm
also
like
pretty
new
to
BMV
too
so
yeah
for.
B
E
Sure,
yeah,
yeah
I
think
yeah
I
agree
like
if
we
can
just
collapse
these
two
tables,
because
yeah
these
These
are
basically
just
just
because
to
accommodate
that
BMV
to
direct
counter
I
introduced
like
there
are
three
tables.
So
if
you
can
just
collapse
it
into
one
and
then
have
some
logic,
perhaps
it's
more
intuitive
right,
yep.
E
G
Hey
BJ,
you
know
when
we
were
discussing
this
one-on-one
last
week
you
had
to
modify
a
ton
of
test
cases
to
add
some
new
attributes
right
right
and
I'm,
just
wondering
in
general.
Is
there
anyone
in
this
group
who
can
respond?
Is
it
necessary
to
pass
all
attributes
or
can
some
of
them
just
default
because
it
seemed
like
it
makes
test
case
maintenance,
a
real
chore?
If
we
had
10
times
as
many
test
cases,
it
would
be
horrible.
G
C
They
are
not
the
key
if
they
are
actually
attributes,
they
are
optional.
G
E
One
question
there
was
that
yeah
we
have
that
match
params
and
actual
params
check
assert
right.
I
was
hitting
that
if
the
test
cases
are
missing
the
attributes,
but.
D
E
Is
there
any
way
to
make
it
like
an
optional
attribute
and
not
do
the
magical
incremental
match
params.
C
Yes,
so
again,
if
you
look
at
the
API
alone,
it
says
clearly
which
which
attributes
are
mandatory
on
Create
and
which
are
not
and
are
provided
with
the
default
value.
Implementation
may
not
follow
that,
and
this
is
about.
G
Yeah
that
so
PJ
we
might
want
to
look
into
that,
because
this
sets
a
precedent.
It's
great,
that
you
update
all
those
test
cases
but
I
feel
bad
for
you,
because
it
was
so
much
work.
Yeah.
J
E
Yeah
I
couldn't
find
that,
where
is
the,
what
makes
the
attribute
mandatory
or
not
mandatory?
Is
it
this
one?
Okay,.
E
Yeah,
this
is
we're
talking
about
this
attribute
right,
creatives.
C
Sorry,
so
it's
not
mandatory
it,
it
can
be
passed
and
create,
or
it
can
be.
You
see
there
is
a
default
value.
No.
K
E
G
Fix
that
in
this
PR,
so
we
set
it
straight
or
you
want
to
do
that
as
after
the
fact.
C
E
This
is
only
part
of
the
mapping,
because
the
mapping
comes
later
in.
E
So
the
I
think
the
requirement
was
like.
If
you
have
private
link
mappings,
then
you
want
the
meter
class
to
be
taken
from
the
private
link
mappings
as
opposed
to
what
is
coming
from
the
routing.
So,
for
example,
in
a
v-net
you
can
have
a
route
which
has
a
metered
class
and
it
points
to
a
mapping
table
which
can
have
regular
mappings
and
it
can
also
have
private
link
mappings.
E
E
No,
this
has
to
come
from
the
top.
So
if
it's
a
private
link
mapping,
then
his
the
controller
will
set
this
particular
meter
class
override.
E
K
E
You
don't
override
I,
think
the
yeah
I
think
the
Boolean
here
is
to
make
sure
so.
The
case
here
is
like:
if
you
have
a
non-pl
mapping,
it
can
have
its
own
meter
class,
but
it
can
still
hit.
It
can
come
from
a
route
where
which
does
not
have
any
meter
class
specified
right?
So.
J
It
might
be
absorbed
because
of
availability
zone
or
something
there
could
be
a
meter
class,
which
is
only
valid
if
it
is
written.
The
Venus
or
not.
K
D
There
are
two
keys
in
it.
There's
a
the
policy
ID
and
the
IP
address
see
the
IP
address,
allow
for
IPv6
as
well.
So.
E
Yeah
I
think
it
BMV
to.
There
was
an
issue.
This
API
itself
allows
for
the
IPv6
address
because
it
is
PSI
IP
address
type,
but
in
bmv2
it
is
V4.
E
E
I
This
is
the
default
action
deny.
Is
that
what
the
intention
I.
I
Okay,
so
so
I
thought
okay.
This
was
metering
mainly
to
for
the
accounting
purpose,.
E
Yeah
I
think
so
too.
So
I
think
this
is
probably
yeah
an
artifact
from
the
actual
Rule
table.
So
yeah
I,
don't.
I
E
Yeah
I
think
it's
pretty
much
done
so.
Okay
just
talked
about
everything
that
I
haven't
I've,
also
taken
notes
on
a
few
of
the
comments
and.
A
A
All
right
and
I
and
I've
connected
you
with
Andy
there
and
guys
do
you
think
this
was
enough
time
to
go
over
this,
or
do
you
want
to
have
10
minutes
in
the
next
call
for
this
or
the
next
bmv2
call
for
this?
What
do
you
think.
A
Well,
if
you
have
comments
on
it,
I
guess
put
a
suggestion
in
the
pr
or
ping
PJ
to
to
take
a
look
at
something.
If
there's
a
question
we're
at
one
up
we're
at
11
16.
did
you
have
something
reshma,
no.