summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/config/user_table-131K-bng.lua
diff options
context:
space:
mode:
Diffstat (limited to 'VNFs/DPPD-PROX/config/user_table-131K-bng.lua')
-rw-r--r--VNFs/DPPD-PROX/config/user_table-131K-bng.lua74
1 files changed, 74 insertions, 0 deletions
diff --git a/VNFs/DPPD-PROX/config/user_table-131K-bng.lua b/VNFs/DPPD-PROX/config/user_table-131K-bng.lua
new file mode 100644
index 00000000..10475796
--- /dev/null
+++ b/VNFs/DPPD-PROX/config/user_table-131K-bng.lua
@@ -0,0 +1,74 @@
+--
+-- Copyright (c) 2010-2017 Intel Corporation
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+-- This script generates a user table containing 131072 users. It is
+-- meant to be used in a BNG with 4 CPE facing ports. Each of the CPE
+-- facing ports has 32768 users behind it. Each user has a unique
+-- svlan/cvlan combination. The only difference between the two sets
+-- of users is the svlan id. Note that any arbitrary configuration is
+-- possible.
+
+local user_table = {}
+
+for i = 1,2^15 do
+ idx = i - 1
+ user_table[i] = {
+ gre_id = idx,
+ -- svlan_id is 000000000XXXXXXX at the bit level
+ -- cvlan_id is 0000XXXX00XX00XX at the bit level
+ svlan_id = mask(idx, 0x7f00) / 2^8,
+ cvlan_id = mask(idx, 0xf0) * 2^4 + mask(idx, 0xc) * 2^2 + mask(idx, 0x3),
+ user_id = idx,
+ }
+end
+
+for i = 1,2^15 do
+ idx = i - 1
+ user_table[2^15 + i] = {
+ gre_id = 2^15 + idx,
+ -- svlan_id is 000000001XXXXXXX at the bit level
+ -- cvlan_id is 0000XXXX00XX00XX at the bit level
+ svlan_id = mask(idx, 0x7f00) / 2^8 + 0x80,
+ cvlan_id = mask(idx, 0xf0) * 2^4 + mask(idx, 0xc) * 2^2 + mask(idx, 0x3),
+ user_id = idx,
+ }
+end
+
+for i = 1,2^15 do
+ idx = i - 1
+ user_table[2*2^15 + i] = {
+ gre_id = 2*2^15 + idx,
+ -- svlan_id is 000000010XXXXXXX at the bit level
+ -- cvlan_id is 0000XXXX00XX00XX at the bit level
+ svlan_id = mask(idx, 0x7f00) / 2^8 + 0x100,
+ cvlan_id = mask(idx, 0xf0) * 2^4 + mask(idx, 0xc) * 2^2 + mask(idx, 0x3),
+ user_id = idx,
+ }
+end
+
+for i = 1,2^15 do
+ idx = i - 1
+ user_table[3*2^15 + i] = {
+ gre_id = 3*2^15 + idx,
+ -- svlan_id is 000000011XXXXXXX at the bit level
+ -- cvlan_id is 0000XXXX00XX00XX at the bit level
+ svlan_id = mask(idx, 0x7f00) / 2^8 + 0x180,
+ cvlan_id = mask(idx, 0xf0) * 2^4 + mask(idx, 0xc) * 2^2 + mask(idx, 0x3),
+ user_id = idx,
+ }
+end
+
+return user_table