docs: def get_expected_bindings(self):
          """Query the neutron DB for SG->switch interface bindings
  
          Bindings are returned as a dict of bindings for each switch:
          {<switch1>: set([(intf1, acl_name, direction),
                           (intf2, acl_name, direction)]),
           <switch2>: set([(intf1, acl_name, direction)]),
           ...,
          }
          """
          sg_bindings = db_lib.get_baremetal_sg_bindings()
  
          all_expected_bindings = collections.defaultdict(set)
          for sg_binding, port_binding in sg_bindings:
              sg_id = sg_binding['security_group_id']
              try:
                  binding_profile = json.loads(port_binding.profile)
              except ValueError:
                  binding_profile = {}
              switchports = self._get_switchports(binding_profile)
              for switch, intf in switchports:
                  ingress_name = self._acl_name(sg_id, n_const.INGRESS_DIRECTION)
                  egress_name = self._acl_name(sg_id, n_const.EGRESS_DIRECTION)
                  all_expected_bindings[switch].add(
                      (intf, ingress_name, a_const.INGRESS_DIRECTION))
                  all_expected_bindings[switch].add(
                      (intf, egress_name, a_const.EGRESS_DIRECTION))
          return all_expected_bindings