Total Complexity | 3 |
Total Lines | 33 |
Duplicated Lines | 0 % |
Coverage | 0% |
Changes | 0 |
1 | """Abstract class for serializing flows.""" |
||
2 | from abc import ABC, abstractmethod |
||
3 | |||
4 | from pyof.v0x01.controller2switch.flow_mod import \ |
||
5 | FlowModCommand as CommonFlowModCommand |
||
6 | |||
7 | |||
8 | class FlowSerializer(ABC): |
||
9 | """Common code for OF 1.0 and 1.3 flow serialization. |
||
10 | |||
11 | For a FlowMod dictionary, create a FlowMod message and, for a FlowStats, |
||
12 | create a dictionary. |
||
13 | """ |
||
14 | |||
15 | # These values are the same in both versions 1.0 and 1.3 |
||
16 | OFPFC_ADD = CommonFlowModCommand.OFPFC_ADD |
||
17 | OFPFC_DELETE = CommonFlowModCommand.OFPFC_DELETE |
||
18 | |||
19 | def __init__(self): |
||
20 | """Initialize common attributes of 1.0 and 1.3 versions.""" |
||
21 | self.flow_attributes = set(('priority', 'idle_timeout', 'hard_timeout', |
||
22 | 'cookie')) |
||
23 | |||
24 | @abstractmethod |
||
25 | def from_dict(self, dictionary): |
||
26 | """Return a FlowMod instance created from a serialized dictionary.""" |
||
27 | pass |
||
28 | |||
29 | @abstractmethod |
||
30 | def to_dict(self, flow_stats): |
||
31 | """Return a serialized dictionary for a FlowStats message.""" |
||
32 | pass |
||
33 |