Skip to content
Snippets Groups Projects
Commit 48324676 authored by Shayan Hajipour's avatar Shayan Hajipour
Browse files

enhancement: port support added to ACL installation flow from IETF ACL in NBI...

enhancement: port support added to ACL installation flow from IETF ACL in NBI to gNMI/OpenConfig driver in SBI
parent c44a2bfe
No related branches found
No related tags found
2 merge requests!359Release TeraFlowSDN 5.0,!342Resolve "(CTTC) ACL support in gNMI/OpenConfig SBI is required"
...@@ -63,16 +63,28 @@ class AclHandler(_Handler): ...@@ -63,16 +63,28 @@ class AclHandler(_Handler):
y_entries = y_set.create_path('acl-entries') y_entries = y_set.create_path('acl-entries')
for entry in rs.get('entries', []): for entry in rs.get('entries', []):
seq = int(entry['sequence_id']) seq = int(entry['sequence_id'])
src = entry['match'].get('src_address', '0.0.0.0/0') m_ = entry["match"]
dst = entry['match'].get('dst_address', '0.0.0.0/0') src_address = m_.get('src_address', '0.0.0.0/0')
dst_address = m_.get('dst_address', '0.0.0.0/0')
src_port = m_.get("src_port")
dst_port = m_.get("dst_port")
act = _TFS_OC_FWD_ACTION[entry['action']['forward_action']] act = _TFS_OC_FWD_ACTION[entry['action']['forward_action']]
y_e = y_entries.create_path(f'acl-entry[sequence-id="{seq}"]') y_e = y_entries.create_path(f'acl-entry[sequence-id="{seq}"]')
y_e.create_path('config/sequence-id', seq) y_e.create_path('config/sequence-id', seq)
y_ipv4 = y_e.create_path('ipv4') y_ipv4 = y_e.create_path('ipv4')
y_ipv4.create_path('config/source-address', src) y_ipv4.create_path('config/source-address', src_address)
y_ipv4.create_path('config/destination-address', dst) y_ipv4.create_path('config/destination-address', dst_address)
if src_port or dst_port:
proto = m_.get("protocol")
y_trans = y_e.create_path("transport")
if src_port:
y_trans.create_path("config/source-port", int(src_port))
if dst_port:
y_trans.create_path("config/destination-port", int(dst_port))
y_ipv4.create_path('config/protocol', int(proto))
y_act = y_e.create_path('actions') y_act = y_e.create_path('actions')
y_act.create_path('config/forwarding-action', act) y_act.create_path('config/forwarding-action', act)
......
...@@ -39,11 +39,9 @@ class Port(BaseModel): ...@@ -39,11 +39,9 @@ class Port(BaseModel):
class Tcp(BaseModel): class Tcp(BaseModel):
flags: str = '' flags: Optional[str] = None
source_port: Port = Field(serialization_alias='source-port', default_factory=lambda: Port()) source_port: Optional[Port] = Field(serialization_alias='source-port', default=None)
destination_port: Port = Field( destination_port: Optional[Port] = Field(serialization_alias='destination-port', default=None)
serialization_alias='destination-port', default_factory=lambda: Port()
)
class Matches(BaseModel): class Matches(BaseModel):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment