diff options
author | YAMADA Hideki <yamada.hideki@po.ntts.co.jp> | 2013-03-28 18:50:25 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2013-03-31 18:11:00 +0900 |
commit | 4590e0d20ec312df1d28b26e400854e04053cabe (patch) | |
tree | 5b59f0b8f7b3754d829c510c4405b7873ba73252 | |
parent | 128b125f0632adde7b664b74ba0116b598af188c (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.py | 31 |
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) |