Total Complexity | 3 |
Total Lines | 31 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 0 |
1 | """Abstract class for serializing flows.""" |
||
2 | 1 | from abc import ABC, abstractmethod |
|
3 | |||
4 | 1 | from pyof.v0x01.controller2switch.flow_mod import \ |
|
5 | FlowModCommand as CommonFlowModCommand |
||
6 | |||
7 | |||
8 | 1 | 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 | 1 | OFPFC_ADD = CommonFlowModCommand.OFPFC_ADD |
|
17 | 1 | OFPFC_DELETE = CommonFlowModCommand.OFPFC_DELETE |
|
18 | |||
19 | 1 | def __init__(self): |
|
20 | """Initialize common attributes of 1.0 and 1.3 versions.""" |
||
21 | 1 | self.flow_attributes = set(('priority', 'idle_timeout', 'hard_timeout', |
|
22 | 'cookie')) |
||
23 | |||
24 | 1 | @abstractmethod |
|
25 | def from_dict(self, dictionary): |
||
26 | """Return a FlowMod instance created from a serialized dictionary.""" |
||
27 | |||
28 | 1 | @abstractmethod |
|
29 | def to_dict(self, flow_stats): |
||
30 | """Return a serialized dictionary for a FlowStats message.""" |
||
31 |