...
코드 블럭 | ||
---|---|---|
| ||
# 1) Tunnel Ingress Rule -------- 터널을 통한 패킷 수신 시에 터널 포트에 관한 테이블 작성 table_entry = p4info_helper.buildTableEntry( table_name="MyIngress.ipv4_lpm", match_fields={ "hdr.ipv4.dstAddr": (dst_ip_addr, 32) }, action_name="MyIngress.myTunnel_ingress", action_params={ "dst_id": tunnel_id, }) ingress_sw.WriteTableEntry(table_entry) print("Installed ingress tunnel rule on %s" % ingress_sw.name) #2) Tunnel Transit Rulerule on %s" % ingress_sw.name) #2) Tunnel Transit Rule --------- 테이블과의 매칭을 통해 패킷 전송에 관한 것 table_entry = p4info_helper.buildTableEntry( table_name="MyIngress.myTunnel_exact", match_fields={ "hdr.myTunnel.dst_id": tunnel_id }, action_name="MyIngress.myTunnel_forward", action_params={ "port": SWITCH_TO_SWITCH_PORT }) ingress_sw.WriteTableEntry(table_entry) print("Installed transit tunnel rule on %s" % ingress_sw.name) # 3) Tunnel Egress Ruletable_entry = p4info_helper.buildTableEntry( -------- 패킷 송신 시에 터널 포트에 관한 테이블 작성 table_name="MyIngress.myTunnel_exact", match_fields={ "hdr.myTunnel.dst_id": tunnel_id }, action_name="MyIngress.myTunnel_egress", action_params={ "dstAddr": dst_eth_addr, "port": SWITCH_TO_HOST_PORT }) egress_sw.WriteTableEntry(table_entry) print("Installed egress tunnel rule on %s" % egress_sw.name) |
...