Naming terminology clarification

Hello,

I’m writing the text for my bachelor’s thesis, and I’d like to be precise with the naming and referencing targets, architectures, etc.

I’m using BMv2, simple_switch_grpc, and V1model architecture.

TLDR; Are these statements correct?

  1. simple_switch and simple_switch_grpc are targets.
  2. V1model is an architecture.
  3. The term “model” doesn’t hold a special meaning, unlike architecture and target.
  4. BMv2 is also a target, but somehow different than simple_switch, please explain how.

From the behavioral model GitHub page, BMv2 is the P4 reference software switch, but I’m unclear on whether it itself is what’s considered a “target”. Is there a different term referencing BMv2 specifically? Ideally, something describing what BMv2 is but it wouldn’t describe for example simple_switch.

I’m just going to make the assumption that what simple_switch and simple_switch_grpc are is the closest to the definition of “target” and they should be referred to as targets. If this assumption is false, please correct me.

The V1model is simply the architecture, correct?

Lastly, at some point, the term “model” has stuck itself in my terminology referencing P4. I’m pretty sure this is just because of the behavioral “model” and the V1"model", and I’ve extrapolated falsely from these that the term “model” must mean something. To formulate my question clearly, there is no such thing as a model in the P4 stack, while there are target and architecture that hold a certain meaning.

Thanks in advance for clarifying for me.

BMv2 is used pretty interchangeably by most people with simple_switch and simple_switch_grpc. simple_switch and simple_switch_grpc are the default name of the Linux programs that one builds when you compile the project, and that one runs when they want to process packets using those programs. BMv2 is just another name, where the “v2” distinguishes it from an older “behavioral model” project that is no longer used much (if at all).

v1model is the name of a P4_16 architecture. That architecture is implemented by simple_switch and simple_switch_grpc.

Regarding your statements:

  1. simple_switch and simple_switch_grpc are targets. ← Yes
  2. V1model is an architecture. ← Yes
  3. The term “model” doesn’t hold a special meaning, unlike architecture and target. ← I agree.
  4. BMv2 is also a target, but somehow different than simple_switch, please explain how. ← See above. I would say BMv2 is just another name for the software whose executable programs are called simple_switch and simple_switch_grpc.

“model” is often used as the name of software that emulates a particular ASIC, e.g. there are “Tofino model” software that emulates the Tofino1 and Tofino2 ASICs, and these programs are often called “the Tofino1 model”, for example. Perhaps “behavioral model” has “model” in its name because of this. I do not know why “v1model” has “model” in its name.

3 Likes