migration to python3 (#1) Change-Id: I964b75c1316b7711cde905c6e98ea027a8557047 Signed-off-by: peusterm <manuel.peuster@uni-paderborn.de>
Support (simple) classifiers In order to support classifiers, each flow entry needs to specify the classifier's parameters within its match rule. This means that the created rules do not only depend on the ingress and egress port, but also on the classifier (this required to move the creation code into the flow classifier loop). Change-Id: I96817255580462e0ffb570b025b6f912f2d00b13 Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Update MAC address to match the next hop If the mac address is not updated the receiving host will reject the packet since it sees a MAC address which does not belong to him. Change-Id: I95edc11572b2ada8841b504ed8eee743613cce09 Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Do not tag outputs with VLANs for SFC this otherwise leads to packets being wrapped within 802.1Q packets, which do not get popped before forwarding to a service. Thus, services do not respond to ARP, PING and alike. Change-Id: I7f29b5094f9bd33661e8f2862c8656c0f9a08a6b Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Create flow table entries for classifiers Only the source port is considered for now, leading to all outgoing traffic being routed along the path. Change-Id: I1752494f5face135fe159bd69f9080a8d614f7e7 Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Fixed port chain direction and linking Given a port chain of two port pair groups ppg1 and ppg2, which each consist of a single port pair (ppg1=[pp1], ppg2=[pp2]), where pp1=(ingress: p1, egress: p2), p2=(ingress: p3, egress: p4) the following forwarding chain was generated: /----\ /----\ | s1 | | s2 | \i--e/ \i--e/ v ^ v ^ | | | | \--/ \--/ This, for once, mixed ingress and egress, but also did not actually link the servers. This patch corrects the linking to: /----\ /----\ | s1 | | s2 | \i--e/ \i--e/ ^ v ^ v | | | | -/ \---/ \-> Change-Id: Iabc48a6950f864562a93f8d17f41890598d65ac6 Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Throw error if SFC ports are not found on servers This breaks the port chain creation and most likely reveals some kind of implementation error elsewhere. Change-Id: I907eb5e828f80ae5ab12de851a98f3c19c9c2d5b Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Support identical ingress and egress ports in port pairs Change-Id: Id58c428594b115a5e343a7b2c701f2ddddb89f81 Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Also compare ids against a server's ports The server's port list may contain ids, thus those also need to be compared. Change-Id: I2e53c111a22009b6c791abc9e52f28afa96d5b0a Signed-off-by: schillinge <ablu@mail.uni-paderborn.de>
Refactoring: Made complete codebase PEP8 compatible. Only PEP8 rule E501 (line too long) is not yet reflected by this change. The patch also adds automated code style checks to the CI test stage using flake8. It will let the tests fail if there is a code style violation. Change-Id: I90956dd424a46691546ef720351757d3c43451a7 Signed-off-by: peusterm <manuel.peuster@uni-paderborn.de>
Fixed missing license headers Signed-off-by: Manuel Peuster <manuel@peuster.de>
Implemented Openstack Neutron SFC API Signed-off-by: Malte Splietker <malte.splietker@gmail.com>