Skip to content

Associate streams to correct A10-NSP #343

Description

@SoerenBusse

Describe the bug
I'm not really sure if this is a bug or a feature request:

We're trying to do L2BSA traffic testing with a single access-node and two A10-NSP for a single carrier. Each subscriber's S-VLAN is dynamically assigned to an A10-NSP by the BNG.

Image

We notice that the session itself (PPPoE or IPoE) establishes successfully, however the "Traffic Flows Verified" will never reach 100%.

When looking at a PCAP file, the stream traffic is sent through the wrong interface, while the session related traffic (PPP, DHCP) is sent through the right one:

Image Image

The documentation states the following:

It is recommended to manually specify the corresponding a10nsp-interface in the access interface function, otherwise the first found a10nsp interface function is used. This interface is used for corresponding traffic streams where the a10nsp-interface is not explicitly defined, including the autogenerated session traffic.

However, a10nsp-interface cannot be set when the BNG itself decides to which A10-NSP a specific subscriber's s-vlan is assigned. How can something like this classic L2BSA scenario can be tested?

To Reproduce

Version (bngblaster -v):

Version: DEV
Compiler: GNU (11.4.0)
GIT:
  REF: release-0.9.25
  SHA: 4bc12475b4cc345ddb9f1041927ff67a6aff3a7d
IO Modes: packet_mmap_raw (default), packet_mmap, raw, dpdk

JSON configuration:
I tried to replicate this scenario using veth-interface-pairs.

{
   "interfaces":{
      "qdisc-bypass": true,
      "capture-include-streams": true,
      "a10nsp":[
         {
            "interface": "a10-sink-1",
            "qinq": true
         },
         {
            "interface": "a10-sink-2",
            "qinq": true
         }
      ],
      "access":[
         {
            "interface":"a10-source-1",
            "outer-vlan-min":128,
            "outer-vlan-max":4094,
            "inner-vlan-min":7,
            "inner-vlan-max":7,
            "qinq":true,
            "type":"ipoe",
            "stream-group-id":1,
            "ipv6":false
         }
      ]
   },
   "dhcp": {
      "enable": true
   },
   "sessions":{
      "count": 1
   },
   "streams":[
        {
            "name": "Downstream",
            "stream-group-id": 1,
            "type": "ipv4",
            "direction": "downstream",
            "pps": 10,
            "length": 1200
        }
   ]
}

Steps to reproduce the behavior:

  1. Create veth-interfaces
ip link add dev a10-source-1 type veth peer name a10-sink-1
ip link add dev a10-source-2 type veth peer name a10-sink-2
  1. Run BNGBlaster configuration

Expected behavior

BNGBlaster should associate each session to an A10-NSP and use this A10-NSP for sending traffic by default.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions