@@ -2739,6 +2739,32 @@ build_lswitch_flows(struct hmap *datapaths, struct hmap *ports,
ovn_lflow_add(lflows, od, S_SWITCH_IN_DHCP_RESPONSE, 0, "1", "next;");
}
+ /* Ingress table 12: Destination lookup, router solicitation handling
+ * (priority 110). */
+ HMAP_FOR_EACH (od, key_node, datapaths) {
+ if (!od->nbs) {
+ continue;
+ }
+
+ if (!od->n_router_ports) {
+ continue;
+ }
+
+ ds_clear(&actions);
+ for (size_t i = 0; i != od->n_router_ports; i++) {
+ op = od->router_ports[i];
+ if (!op->lsp_addrs || !op->lsp_addrs->n_ipv6_addrs) {
+ continue;
+ }
+ ds_put_format(&actions, "outport = %s; output; ", op->json_key);
+ }
+ if (actions.length != 0) {
+ ds_chomp(&actions, ' ');
+ ovn_lflow_add(lflows, od, S_SWITCH_IN_L2_LKUP, 110, "nd_rs",
+ ds_cstr(&actions));
+ }
+ }
+
/* Ingress table 12: Destination lookup, broadcast and multicast handling
* (priority 100). */
HMAP_FOR_EACH (op, key_node, ports) {