aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot
AgeCommit message (Collapse)AuthorFilesLines
2017-08-01CSIT-699: Add l2bd+dot1q perf testsJan Gelety1-0/+316
Change-Id: I3d8cbb235918331b3c60147f7870a4aa90036748 Signed-off-by: Jan Gelety <jgelety@cisco.com>
9 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
# Buffer metadata change tracker {#mdata_doc}

## Introduction

The mdata plugin uses the vlib main loop "before" performance counter
hook to snapshoot buffer metadata before calling the node dispatch
function. Similarly, the plugin uses the main loop "after" hook to
compare a vectors' worth of buffer metadata after the fact.

The comparison function is a simple octet-by-octet A != B check. We
accumulate changed octets per-node across the entire run, using a
single spinlock-protected accumulator.

The "show buffer metadata" command produces a report of all fields
whose values are changed by nodes visited during a given run.

Since many fields in the vnet_buffer_opaque_t are union members,
it may appear that a certain node changes numerous fields. The entire
point of the exercise is to warn developers that if a packet visits
node N, data placed into opaque union field F *will* be affected.

One should never assume much about buffer metadata immutability across
arbitrary subgraphs. This tool generates accurate reports, to the
extent that one exercises the required subgraph trajectories.