@@ -187,7 +187,7 @@ SwitchIPv4ReservedAddresses(lswitch, addrs) :-
var addrs = addr.group_by(lswitch).to_set().
SwitchIPv4ReservedAddresses(lswitch_uuid, set_empty()) :-
- nb::Logical_Switch(._uuid = lswitch_uuid),
+ &nb::Logical_Switch(._uuid = lswitch_uuid),
not SwitchIPv4ReservedAddress(lswitch_uuid, _).
/* Allocate dynamic IP addresses for ports that require them:
@@ -44,7 +44,7 @@ SwitchRouterPeerRef(lsp, None) :-
* (Use LogicalSwitchPort instead, which guarantees uniqueness.) */
relation LogicalSwitchPortCandidate(lsp_uuid: uuid, ls_uuid: uuid)
LogicalSwitchPortCandidate(lsp_uuid, ls_uuid) :-
- nb::Logical_Switch(._uuid = ls_uuid, .ports = ports),
+ &nb::Logical_Switch(._uuid = ls_uuid, .ports = ports),
var lsp_uuid = FlatMap(ports).
Warning[message] :-
LogicalSwitchPortCandidate(lsp_uuid, ls_uuid),
@@ -74,7 +74,7 @@ LogicalSwitchPortWithUnknownAddress(ls_uuid, lsp_uuid) :-
output relation LogicalSwitchHasUnknownPorts(ls: uuid, has_unknown: bool)
LogicalSwitchHasUnknownPorts(ls, true) :- LogicalSwitchPortWithUnknownAddress(ls, _).
LogicalSwitchHasUnknownPorts(ls, false) :-
- nb::Logical_Switch(._uuid = ls),
+ &nb::Logical_Switch(._uuid = ls),
not LogicalSwitchPortWithUnknownAddress(ls, _).
/* PortStaticAddresses: static IP addresses associated with each Logical_Switch_Port */
@@ -101,11 +101,11 @@ PortInGroup(port, group) :-
relation LogicalSwitchACL(ls: uuid, acl: uuid)
LogicalSwitchACL(ls, acl) :-
- nb::Logical_Switch(._uuid = ls, .acls = acls),
+ &nb::Logical_Switch(._uuid = ls, .acls = acls),
var acl = FlatMap(acls).
LogicalSwitchACL(ls, acl) :-
- nb::Logical_Switch(._uuid = ls, .ports = ports),
+ &nb::Logical_Switch(._uuid = ls, .ports = ports),
var port_id = FlatMap(ports),
PortInGroup(port_id, group_id),
nb::Port_Group(._uuid = group_id, .acls = acls),
@@ -125,7 +125,7 @@ LogicalSwitchHasStatefulACL(ls, true) :-
LogicalSwitchStatefulACL(ls, _).
LogicalSwitchHasStatefulACL(ls, false) :-
- nb::Logical_Switch(._uuid = ls),
+ &nb::Logical_Switch(._uuid = ls),
not LogicalSwitchStatefulACL(ls, _).
// "Pitfalls of projections" in ddlog-new-feature.rst explains why this
@@ -136,7 +136,7 @@ LogicalSwitchHasACLs(ls, true) :-
LogicalSwitchACL(ls, _).
LogicalSwitchHasACLs(ls, false) :-
- nb::Logical_Switch(._uuid = ls),
+ &nb::Logical_Switch(._uuid = ls),
not LogicalSwitchACL(ls, _).
/*
@@ -146,7 +146,7 @@ LogicalSwitchHasACLs(ls, false) :-
*/
relation LogicalSwitchLocalnetPort0(ls_uuid: uuid, lsp: (uuid, string))
LogicalSwitchLocalnetPort0(ls_uuid, (lsp_uuid, lsp.name)) :-
- ls in nb::Logical_Switch(._uuid = ls_uuid),
+ ls in &nb::Logical_Switch(._uuid = ls_uuid),
var lsp_uuid = FlatMap(ls.ports),
lsp in &nb::Logical_Switch_Port(._uuid = lsp_uuid),
lsp.__type == "localnet".
@@ -156,7 +156,7 @@ LogicalSwitchLocalnetPorts(ls_uuid, localnet_ports) :-
LogicalSwitchLocalnetPort0(ls_uuid, lsp),
var localnet_ports = lsp.group_by(ls_uuid).to_vec().
LogicalSwitchLocalnetPorts(ls_uuid, vec_empty()) :-
- ls in nb::Logical_Switch(),
+ ls in &nb::Logical_Switch(),
var ls_uuid = ls._uuid,
not LogicalSwitchLocalnetPort0(ls_uuid, _).
@@ -164,7 +164,7 @@ LogicalSwitchLocalnetPorts(ls_uuid, vec_empty()) :-
relation LogicalSwitchDNS(ls_uuid: uuid, dns_uuid: uuid)
LogicalSwitchDNS(ls._uuid, dns_uuid) :-
- nb::Logical_Switch[ls],
+ &nb::Logical_Switch[ls],
var dns_uuid = FlatMap(ls.dns_records),
nb::DNS(._uuid = dns_uuid).
@@ -183,12 +183,12 @@ LogicalSwitchHasDNSRecords(ls, true) :-
LogicalSwitchWithDNSRecords(ls).
LogicalSwitchHasDNSRecords(ls, false) :-
- nb::Logical_Switch(._uuid = ls),
+ &nb::Logical_Switch(._uuid = ls),
not LogicalSwitchWithDNSRecords(ls).
relation LogicalSwitchHasNonRouterPort0(ls: uuid)
LogicalSwitchHasNonRouterPort0(ls_uuid) :-
- ls in nb::Logical_Switch(._uuid = ls_uuid),
+ ls in &nb::Logical_Switch(._uuid = ls_uuid),
var lsp_uuid = FlatMap(ls.ports),
lsp in &nb::Logical_Switch_Port(._uuid = lsp_uuid),
lsp.__type != "router".
@@ -199,7 +199,7 @@ output relation LogicalSwitchHasNonRouterPort(ls: uuid, has_non_router_port: boo
LogicalSwitchHasNonRouterPort(ls, true) :-
LogicalSwitchHasNonRouterPort0(ls).
LogicalSwitchHasNonRouterPort(ls, false) :-
- nb::Logical_Switch(._uuid = ls),
+ &nb::Logical_Switch(._uuid = ls),
not LogicalSwitchHasNonRouterPort0(ls).
// LogicalSwitchCopp maps from each LS to its collection of Copp meters,
@@ -207,12 +207,12 @@ LogicalSwitchHasNonRouterPort(ls, false) :-
relation LogicalSwitchCopp(ls: uuid, meters: Map<string,string>)
LogicalSwitchCopp(ls, meters) :- LogicalSwitchCopp0(ls, meters).
LogicalSwitchCopp(ls, map_empty()) :-
- nb::Logical_Switch(._uuid = ls),
+ &nb::Logical_Switch(._uuid = ls),
not LogicalSwitchCopp0(ls, _).
relation LogicalSwitchCopp0(ls: uuid, meters: Map<string,string>)
LogicalSwitchCopp0(ls, meters) :-
- nb::Logical_Switch(._uuid = ls, .copp = Some{copp_uuid}),
+ &nb::Logical_Switch(._uuid = ls, .copp = Some{copp_uuid}),
nb::Copp(._uuid = copp_uuid, .meters = meters),
var entry = FlatMap(meters),
(var copp_id, var meter_name) = entry,
@@ -280,7 +280,7 @@ Switch[Switch{
.copp = copp,
.is_vlan_transparent = is_vlan_transparent
}.intern()] :-
- nb::Logical_Switch[ls],
+ &nb::Logical_Switch[ls],
LogicalSwitchHasStatefulACL(ls._uuid, has_stateful_acl),
LogicalSwitchHasACLs(ls._uuid, has_acls),
LogicalSwitchHasLBVIP(ls._uuid, has_lb_vip),
@@ -320,7 +320,7 @@ Switch[Switch{
/* SwitchLB: many-to-many relation between logical switches and nb::LB */
relation SwitchLB(sw_uuid: uuid, lb: Intern<nb::Load_Balancer>)
SwitchLB(sw_uuid, lb) :-
- nb::Logical_Switch(._uuid = sw_uuid, .load_balancer = lb_ids),
+ &nb::Logical_Switch(._uuid = sw_uuid, .load_balancer = lb_ids),
var lb_id = FlatMap(lb_ids),
lb in &nb::Load_Balancer(._uuid = lb_id).
@@ -337,7 +337,7 @@ output relation LogicalSwitchHasLBVIP(sw_uuid: uuid, has_lb_vip: bool)
LogicalSwitchHasLBVIP(sw_uuid, true) :-
SwitchLBVIP(.sw_uuid = sw_uuid).
LogicalSwitchHasLBVIP(sw_uuid, false) :-
- nb::Logical_Switch(._uuid = sw_uuid),
+ &nb::Logical_Switch(._uuid = sw_uuid),
not SwitchLBVIP(.sw_uuid = sw_uuid).
/* Load balancer virtual IPs.
@@ -520,7 +520,7 @@ relation SwitchQoS(sw: Intern<Switch>, qos: Intern<nb::QoS>)
SwitchQoS(sw, qos) :-
sw in &Switch(),
- nb::Logical_Switch(._uuid = sw._uuid, .qos_rules = qos_rules),
+ &nb::Logical_Switch(._uuid = sw._uuid, .qos_rules = qos_rules),
var qos_rule = FlatMap(qos_rules),
qos in &nb::QoS(._uuid = qos_rule).
@@ -64,7 +64,7 @@ McastSwitchCfg[McastSwitchCfg {
.query_interval = query_interval,
.query_max_resp = query_max_resp
}.intern()] :-
- nb::Logical_Switch(._uuid = ls_uuid,
+ &nb::Logical_Switch(._uuid = ls_uuid,
.other_config = other_config),
var idle_timeout = other_config.get_int_def("mcast_idle_timeout", mCAST_DEFAULT_IDLE_TIMEOUT_S())
.clamp(mCAST_IDLE_TIMEOUT_S_RANGE()),
@@ -17,6 +17,7 @@
--intern-table ACL
--intern-table QoS
--intern-table Load_Balancer
+--intern-table Logical_Switch
--intern-table Load_Balancer_Health_Check
--intern-table Meter
--intern-table NAT
@@ -59,7 +59,7 @@ relation OutProxy_Datapath_Binding (
/* Datapath_Binding table */
OutProxy_Datapath_Binding(uuid, external_ids) :-
- nb::Logical_Switch(._uuid = uuid, .name = name, .external_ids = ids,
+ &nb::Logical_Switch(._uuid = uuid, .name = name, .external_ids = ids,
.other_config = other_config),
var uuid_str = uuid2str(uuid),
var external_ids = {
@@ -1753,7 +1753,7 @@ Flow(.logical_datapath = sw._uuid,
.io_port = None,
.controller_meter = None) :-
sw in &Switch(),
- nb::Logical_Switch(._uuid = sw._uuid, .forwarding_groups = forwarding_groups),
+ &nb::Logical_Switch(._uuid = sw._uuid, .forwarding_groups = forwarding_groups),
var fg_uuid = FlatMap(forwarding_groups),
fg in nb::Forwarding_Group(._uuid = fg_uuid),
not fg.child_port.is_empty(),
@@ -1785,7 +1785,7 @@ Flow(.logical_datapath = sw._uuid,
.io_port = None,
.controller_meter = None) :-
sw in &Switch(),
- nb::Logical_Switch(._uuid = sw._uuid, .forwarding_groups = forwarding_groups),
+ &nb::Logical_Switch(._uuid = sw._uuid, .forwarding_groups = forwarding_groups),
var fg_uuid = FlatMap(forwarding_groups),
fg in nb::Forwarding_Group(._uuid = fg_uuid),
not fg.child_port.is_empty(),
@@ -3692,7 +3692,7 @@ for (SwitchPortIPv6Address(.port = &SwitchPort{.lsp = lsp, .json_name = json_nam
/* Ingress table ARP_ND_RSP: ARP/ND responder, by default goto next.
* (priority 0)*/
-for (ls in nb::Logical_Switch) {
+for (ls in &nb::Logical_Switch) {
Flow(.logical_datapath = ls._uuid,
.stage = s_SWITCH_IN_ARP_ND_RSP(),
.priority = 0,
@@ -4074,7 +4074,7 @@ for (LogicalSwitchHasDNSRecords(ls, true))
* Ingress table EXTERNAL_PORT - External port handling, by default goto next.
* (priority 0). */
-for (ls in nb::Logical_Switch) {
+for (ls in &nb::Logical_Switch) {
Flow(.logical_datapath = ls._uuid,
.stage = s_SWITCH_IN_DHCP_OPTIONS(),
.priority = 0,
@@ -4364,7 +4364,7 @@ Flow(.logical_datapath = sp.sw._uuid,
/* Ingress table L2_LKUP: Destination lookup, broadcast and multicast handling
* (priority 100). */
-for (ls in nb::Logical_Switch) {
+for (ls in &nb::Logical_Switch) {
var mc_flood = json_string_escape(mC_FLOOD().0) in
Flow(.logical_datapath = ls._uuid,
.stage = s_SWITCH_IN_L2_LKUP(),
@@ -8255,7 +8255,7 @@ function get_dp_tunkey(map: Map<string,string>, key: string): Option<integer> {
// Tunnel keys requested by datapaths.
relation RequestedTunKey(datapath: uuid, tunkey: integer)
RequestedTunKey(uuid, tunkey) :-
- ls in nb::Logical_Switch(._uuid = uuid),
+ ls in &nb::Logical_Switch(._uuid = uuid),
Some{var tunkey} = get_dp_tunkey(ls.other_config, "requested-tnl-key").
RequestedTunKey(uuid, tunkey) :-
lr in nb::Logical_Router(._uuid = uuid),
@@ -8653,7 +8653,7 @@ sb::Out_Load_Balancer(._uuid = lb._uuid,
.datapaths = datapaths,
.external_ids = ["lb_id" -> uuid2str(lb_uuid)],
.options = options) :-
- nb in nb::Logical_Switch(._uuid = ls_uuid, .load_balancer = lb_uuids),
+ nb in &nb::Logical_Switch(._uuid = ls_uuid, .load_balancer = lb_uuids),
var lb_uuid = FlatMap(lb_uuids),
var datapaths = ls_uuid.group_by(lb_uuid).to_set(),
lb in &nb::Load_Balancer(._uuid = lb_uuid),