8 Commits

Author SHA1 Message Date
ishida wataru
23b1226cd2 lib/packet/packet_utils: Add a function to calculate fletcher checksum
I'm resending the patches which appease pep8

fletcher checksum function for OSPF LSA checksum.
refer to RFC1008.

Signed-off-by: Wataru ISHIDA <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-12-13 15:50:06 +09:00
YAMAMOTO Takashi
c14a4182d3 packet lib: change the api to use text addresses
for example:
    >>> from ryu.lib.packet.ipv4 import ipv4
    >>> o = ipv4(src='127.0.0.1')
    >>> o.src
    '127.0.0.1'
    >>>

i left lldp TLVs as they seem to be treated opaque.

for now, i don't change mac.DONTCARE and mac.BROADCAST because
they are used by the ofproto world as well.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-01 14:25:41 +09:00
YAMAMOTO Takashi
d31b5dd367 addrconv: use bytes instead of int to represent ipv4 addresses
change ipv4 representation from int to bytes in many places.
replace homegrown bin<->text routines with addrconv for ipv4.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24 04:12:07 +09:00
Isaku Yamahata
e0bcd61f92 lib/packet/packet_utils: optimize checksum
builtin function, sum, is much faster than for loop.
The result on my machine is as follows

> def main():
>     from timeit import timeit
>     data = bytearray().zfill(1500)
>     print 'new=', timeit(lambda : checksum(data), number=1000)
>     print 'old=', timeit(lambda : checksum_old(data), number=1000)
>
> new= 0.00800108909607
> old= 0.266770124435

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-04-02 12:00:12 +09:00
Isaku Yamahata
2195ba0e4d lib/packet: checksum function with pseudo ipv4/ipv6 header
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:21:01 +09:00
Isaku Yamahata
565df6fc48 lib/packet/packet_utils: improve checksum byteswap
move byteswap logic into checksum from caller.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:19:42 +09:00
Isaku Yamahata
d0c5c14ad8 lib/packet/packet_utils: improve checksum padding
IP checksum needs padding.
Move padding logic into checksum from caller.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:19:42 +09:00
FUJITA Tomonori
0153f492ea packet lib: add packet_utils.py
Add a helper function to calculate the checksum.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-08-28 05:58:25 +09:00