aboutsummaryrefslogtreecommitdiffstats
path: root/tools/pkt_gen/prox/files/helper.lua
diff options
context:
space:
mode:
authorSridhar K. N. Rao <sridhar.rao@spirent.com>2021-08-04 17:10:27 +0530
committerAl Morton <acm@research.att.com>2021-09-29 21:33:46 +0000
commit48f947e94e36e877aa6889e10cda0bbdcd573ef4 (patch)
tree29b044162e9d7534f0b42746b26aa42955332917 /tools/pkt_gen/prox/files/helper.lua
parent220aed1de03317d1ad6f3ebbec9f6b93e44522c7 (diff)
Integrating DPPD-Prox with Vineperf
This patch adds Integration of DPPD-Prox with Vineperf Added: 1. Results analysis - bug-fix 2. Restrict to baremetal for this patch. 3. Fix Pylint errors. 4. Copy Rapid private key too. 5. Remove SSH key. Signed-off-by: Sridhar K. N. Rao <sridhar.rao@spirent.com> Change-Id: I3ea7e6261e3fab06ef829f22153fe247372fc34b
Diffstat (limited to 'tools/pkt_gen/prox/files/helper.lua')
-rw-r--r--tools/pkt_gen/prox/files/helper.lua77
1 files changed, 77 insertions, 0 deletions
diff --git a/tools/pkt_gen/prox/files/helper.lua b/tools/pkt_gen/prox/files/helper.lua
new file mode 100644
index 00000000..1b4c657b
--- /dev/null
+++ b/tools/pkt_gen/prox/files/helper.lua
@@ -0,0 +1,77 @@
+--
+-- Copyright (c) 2020 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.
+--
+
+function convertIPToHex(ip)
+ local address_chunks = {}
+ if type(ip) ~= "string" then
+ print ("IP ADDRESS ERROR: ", ip)
+ return "IP ADDRESS ERROR"
+ end
+
+ local chunks = {ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)(\/%d+)$")}
+ if #chunks == 5 then
+ for i,v in ipairs(chunks) do
+ if i < 5 then
+ if tonumber(v) > 255 then
+ print ("IPV4 ADDRESS ERROR: ", ip)
+ return "IPV4 ADDRESS ERROR"
+ end
+ address_chunks[#address_chunks + 1] = string.format ("%02x", v)
+ end
+ end
+ result = table.concat(address_chunks, " ")
+ print ("Hex IPV4: ", result)
+ return result
+ end
+
+ local chunks = {ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$")}
+ if #chunks == 4 then
+ for i,v in ipairs(chunks) do
+ if tonumber(v) > 255 then
+ print ("IPV4 ADDRESS ERROR: ", ip)
+ return "IPV4 ADDRESS ERROR"
+ end
+ address_chunks[#address_chunks + 1] = string.format ("%02x", v)
+ end
+ result = table.concat(address_chunks, " ")
+ print ("Hex IPV4: ", result)
+ return result
+ end
+
+ delimiter = ":"
+ for match in (ip..delimiter):gmatch("(.-)"..delimiter) do
+ if match ~= "" then
+ number = tonumber(match, 16)
+ if number <= 65535 then
+ table.insert(address_chunks, string.format("%02x %02x",number/256,number % 256))
+ end
+ else
+ table.insert(address_chunks, "")
+ end
+ end
+ for i, chunk in ipairs(address_chunks) do
+ if chunk =="" then
+ table.remove(address_chunks, i)
+ for j = 1,(8-#address_chunks) do
+ table.insert(address_chunks, i, "00 00")
+ end
+ break
+ end
+ end
+ result = table.concat(address_chunks, " ")
+ print ("Hex IPV6: ", result)
+ return result
+end