6 Commits

Author SHA1 Message Date
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