summaryrefslogtreecommitdiffhomepage
path: root/ryu/lib
AgeCommit message (Collapse)Author
2013-09-02packet lib: igmp: add a constant valueYuichi Ito
Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-09-02packet lib: llc: correct a variable namewatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-29packet lib: igmp: add some constant valuesYuichi Ito
Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-29add LACP applicationYuichi Ito
this application provides the simple example of link aggregation using LACP. the module "lacplib" controls exchange of LACP packets and watches the status of the slave i/fs. the status changes if the i/fs went into a LAG or timeout to exchange LACP occurred. the module sends a "EventSlaveStateChanged" event when the status changed. the module "simple_switch_lacp" is a variation of "simple_switch". the switch receives the "EventPacketIn" event instead of the "EventOFPPacketIn" event from the module "lacplib" in order to except LACP. when the module received "EventSlaveStateChanged" event, the module resets flow entries. to run: ryu-manager ryu/app/simple_switch_lacp.py Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26stringify: allow user classes to annotate type of their attributesYAMAMOTO Takashi
allow user classes to annotate type of their attributes using _TYPE class attribute. an example: class Foo(StringifyMixin): _TYPE = {'ascii': ['attr1', 'attr2']} def __init__(self): self.attr1 = 'hoge' self.attr2 = 'fuga' currently handles only 'ascii' type, for which just convert from/to unicode. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-23lib/packet: update docstrings to fix broken tables in latex/pdfYoshihiro Kaneko
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-23packet lib: fix ipv6 parserYgor Amaral
payload length in ipv6 header doesn't include the basic ipv6 header length (40 bytes). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-20ofctl lib: Actions is a listSatoshi Kobayashi
Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp> Acked-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-13packet_base: update docstringYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-12lib/packet: add Internet Group Management ProtocolYuichi Ito
Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06packet lib: make vrrp get_payload robustFUJITA Tomonori
Let's not make an assumption about the position of IP(v4 or v6) and VRRP. The original code excepts pure ether or vlan and search them in try-and-error way. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06packet lib to string: add __str__ to basewatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06packet lib to string: inherits StringifyMixinwatanabe.fumitaka
Some class inherits stringify.StringifyMixin and, remove class variable 'tlvs' (not used as class variable and interferes to string) from lldp.lldp Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-04packet lib: provide bpdu._MIN_LENYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-04packet lib: provide llc._MIN_LENYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-04packet lib: implement lacp.__len__YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-04packet lib: implement ryu.lib.packet.lldp.lldp.__len__YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-04packet lib: provide a default impl of __len__YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-01correct file permissionYuichi Ito
i'm sorry but i have set a wrong permission to files related to LACP. Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-01packet lib: pydoc update/improvements after api changeYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-01packet lib: change the api to use text addressesYAMAMOTO Takashi
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-07-31link to LLC sub layerwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31lib/packet/llcwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31lib/packet/bpduwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-25addrconv: remove embedded test codeYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24add ofctl_v1_3 libraryOHMURA Kei
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: use bytes instead of int to represent ipv4 addressesYAMAMOTO Takashi
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-24addrconv: replace bin<->text converters for ipv6YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: replace bin<->text converters for mac addressesYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: binary <-> text conversion of mac/ipv4/ipv6 addressesYAMAMOTO Takashi
implemented as a simple wrapper of netaddr. background: the goal is to use the consistent representations of addresses throughout the tree, instead of the current ad-hoc representations like a list of int16 for ipv6 address. - netaddr style text (eg. '10.0.0.1', 'ff02::1') for ryu-app level api. - on-wire binary for internal use. this is the first step to the direction. ie. have a single implementation of address representation conversion. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24lib/packet: add Link Aggregation Control ProtocolYuichi Ito
Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-22stringify.StringifyMixin.__str__: simplifyYAMAMOTO Takashi
simplify the code a bit. suggested by Isaku Yamahata. no functional changes are intended. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19appease pep8YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-12StringifyMixin: json supportYAMAMOTO Takashi
factor out guts of StringifyMixin into a separate module. add methods to convert to/from json.loads/dumps-compatible dictionary. this is mainly for json representation of of-wire (OFPxxx) classes. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-09use ofproto.OFP_NO_BUFFER in some placesYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-09packege: rpmlint warningIsaku Yamahata
ryu.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/ryu/tests/unit/lib/test_hub.py 0644L /usr/bin/env ryu.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/ryu/lib/hub.py 0644L /usr/bin/env Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-02lib/packet: teach packet library to truncate padding octetIsaku Yamahata
The patch teaches packet library to truncate padding octets. Change packet_base.parser() to return (header, next_type, rest_of_packet) The protocol class that knows its payload length should rest_of_packet where padding octets at the last of packet is truncated. As bonus, - fix ipv6 parser as ipv6 header doesn't have options. It seems copy-and-paste from ipv4 - improve ipv4, tcp a bit Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Cc: Shaun Crampton <Shaun.Crampton@metaswitch.com> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-02lib/packet: make packet_base.parser abstract methodIsaku Yamahata
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-02lib/packet: make protocol_name property instead of attributesIsaku Yamahata
Because it is read-only and to prevent accidental over-write. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-28packet lib: stop tlv parsing when finding LLDP_TLV_ENDIsaku Yamahata
There may be padding at the end of payload. So the assumption that there is no payload after LLDP_TLV_END is not correct. Reported-by: Q Lady <holynn.q@gmail.com> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-28packet lib: add ICMP sub encoder/decoder classwatanabe.fumitaka
Add ICMP sub encoder/decoder class for Destination Unreachable Message. and, add parser to Time Exceeded Message class. Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20ofctl_v1_2.actions_to_str: ignore unknown instructionsYAMAMOTO Takashi
avoid crashing when the switch happens to have flows with non OFPInstructionActions instructions. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20packet lib: avoid exception for bogus protocol header parsingFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: packet class supports get_protocol methodIsaku Yamahata
returns a list of protocols that matches to the specified protocol. Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: add Packet.__contains__Isaku Yamahata
you can do something like: if arp.arp in Packet(msg.data): a = arp.arp(...) if a in Packet(msg.data): >>> from ryu.lib.packet import packet >>> from ryu.lib.packet import arp >>> a = arp.arp_ip(1, 0, 0, 0, 0) >>> p = packet.Packet() >>> p.protocols = [a] >>> arp.arp in p True >>> a in p True Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: packet class accepts protocols list argumentFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: arp default argsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: vlan default argsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: mpls default argsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10packet lib: ipv4 default argsFUJITA Tomonori
Make ipv4 more handy by not asking for every args. I prefer to use more human-readble representation for src and dst but it leads to the API change so let's do it later with another patch. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>