summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYAMADA Hideki <yamada.hideki@po.ntts.co.jp>2013-03-28 18:50:25 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2013-03-31 18:11:00 +0900
commit4590e0d20ec312df1d28b26e400854e04053cabe (patch)
tree5b59f0b8f7b3754d829c510c4405b7873ba73252
parent128b125f0632adde7b664b74ba0116b598af188c (diff)
lib/port_no: handling port_no as string
Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/lib/port_no.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/ryu/lib/port_no.py b/ryu/lib/port_no.py
new file mode 100644
index 00000000..33720f3c
--- /dev/null
+++ b/ryu/lib/port_no.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone 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.
+
+# Internal representation of port_no id is int(32bit)
+# string representation is in hex without '0x'
+
+_PORT_NO_LEN = 8
+_PORT_NO_LEN_STR = str(_PORT_NO_LEN)
+_PORT_NO_FMT = '%0' + _PORT_NO_LEN_STR + 'x'
+PORT_NO_PATTERN = r'[0-9a-f]{%d}' % _PORT_NO_LEN
+
+
+def port_no_to_str(port_no):
+ return _PORT_NO_FMT % port_no
+
+
+def str_to_port_no(port_no_str):
+ assert len(port_no_str) == _PORT_NO_LEN
+ return int(port_no_str, 16)