-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add python3 virtual environment for docker-ptf (#10599)
Why I did it Migrate ptftests script to python3, in order to do an incremental migration, add python virtual environment firstly, install all required python packages in virtual env as well. Then migrate ptftests scripts from python2 to python3 one by one avoid impacting non-changed scripts. Signed-off-by: Zhaohui Sun zhaohuisun@microsoft.com How I did it Add python3 virtual environment for docker-ptf. Add submodule ptf-py3 and install patched ptf 0.9.3 into virtual environment as well, two ptf issues were reported here: p4lang/ptf#173 p4lang/ptf#174 Signed-off-by: Zhaohui Sun <zhaohuisun@microsoft.com>
- Loading branch information
Showing
9 changed files
with
153 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
|
||
SPATH := $($(PTF_PY3)_SRC_PATH) | ||
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/ptf-py3.mk rules/ptf-py3.dep | ||
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) | ||
SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) | ||
|
||
$(PTF_PY3)_CACHE_MODE := GIT_CONTENT_SHA | ||
$(PTF_PY3)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) | ||
$(PTF_PY3)_DEP_FILES := $(DEP_FILES) | ||
$(PTF_PY3)_SMDEP_FILES := $(SMDEP_FILES) | ||
$(PTF_PY3)_SMDEP_PATHS := $(SPATH) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# ptf package | ||
|
||
PTF_PY3 = ptf-0.9.3-py3-none-any.whl | ||
$(PTF_PY3)_SRC_PATH = $(SRC_PATH)/ptf-py3 | ||
$(PTF_PY3)_PYTHON_VERSION = 3 | ||
$(PTF_PY3)_TEST = n | ||
SONIC_PYTHON_WHEELS += $(PTF_PY3) |
26 changes: 26 additions & 0 deletions
26
src/ptf-py3.patch/0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
From a8b13b9fbaa16ddd305ba2df2238ef606ef222a7 Mon Sep 17 00:00:00 2001 | ||
From: Zhaohui Sun <zhaohuisun@microsoft.com> | ||
Date: Wed, 13 Apr 2022 09:24:46 +0000 | ||
Subject: [PATCH 1/2] Remove ord in get_mac() to avoid TypeError | ||
|
||
Signed-off-by: Zhaohui Sun <zhaohuisun@microsoft.com> | ||
--- | ||
src/ptf/netutils.py | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/src/ptf/netutils.py b/src/ptf/netutils.py | ||
index 752e76c..6aabe79 100644 | ||
--- a/src/ptf/netutils.py | ||
+++ b/src/ptf/netutils.py | ||
@@ -54,7 +54,7 @@ def get_if_index(iff): | ||
|
||
|
||
def get_mac(iff): | ||
- return ":".join(["%02x" % ord(char) for char in get_if(iff, SIOCGIFHWADDR)[18:24]]) | ||
+ return ":".join(["%02x" % char for char in get_if(iff, SIOCGIFHWADDR)[18:24]]) | ||
|
||
|
||
def set_promisc(s, iff, val=1): | ||
-- | ||
2.25.1 | ||
|
36 changes: 36 additions & 0 deletions
36
src/ptf-py3.patch/0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
From 6e570e00ea05882d2db1e480ed041ea631bf37da Mon Sep 17 00:00:00 2001 | ||
From: Zhaohui Sun <zhaohuisun@microsoft.com> | ||
Date: Wed, 13 Apr 2022 09:25:28 +0000 | ||
Subject: [PATCH 2/2] Fill byte formatted client mac address in DHCP Discover | ||
packet | ||
|
||
Signed-off-by: Zhaohui Sun <zhaohuisun@microsoft.com> | ||
--- | ||
src/ptf/testutils.py | 9 +++++---- | ||
1 file changed, 5 insertions(+), 4 deletions(-) | ||
|
||
diff --git a/src/ptf/testutils.py b/src/ptf/testutils.py | ||
index ab67cea..83a9075 100755 | ||
--- a/src/ptf/testutils.py | ||
+++ b/src/ptf/testutils.py | ||
@@ -2712,12 +2712,13 @@ def __dhcp_mac_to_chaddr(mac_addr="00:01:02:03:04:05"): | ||
""" | ||
Private helper function to convert a 6-byte MAC address of form: | ||
'00:01:02:03:04:05' | ||
- into a 16-byte chaddr byte string of form: | ||
- '\x00\x01\x02\x03\x04\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' | ||
+ into a 16-byte chaddr byte of form: | ||
+ b'\x00\x01\x02\x03\x04\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' | ||
|
||
""" | ||
- chaddr = "".join([chr(int(octet, 16)) for octet in mac_addr.split(":")]) | ||
- chaddr += "\x00" * 10 | ||
+ import binascii | ||
+ chaddr = binascii.unhexlify(mac_addr.replace(':', '')) | ||
+ chaddr += b'\x00\x00\x00\x00\x00\x00' | ||
return chaddr | ||
|
||
|
||
-- | ||
2.25.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch | ||
0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch |