OpenKeel implementation in Go of OpenStack neutron-fwaas (neutron-fwaas-api), generated from the reverse-specification of branch stable/2026.2 by the generate-go-from-spec skill. It serves the FWaaS v2 API (/v2.0/fwaas) and programs firewall groups as OVN Port_Groups and stateless ACLs, replacing the firewall_v2 service plugin and its OVN driver: same routes, status codes, error bodies and policies, same NB rows. It runs beside openkeel-neutron, on its database and its OVN; clients reach it through a proxy in openkeel-neutron: see docs/NEUTRON-INTEGRATION.md. What is reproduced and what differs is in docs/CONFORMANCE.md; the security checklist is in docs/SECURITY.md.
Go module: github.com/openkeel/openkeel-neutron-fwaas
Binary: neutron-fwaas-api (API on port 9696, health and metrics on 9090)
Configuration: YAML, see config/config.example.yaml
Setting up a development environment, the database and the tests: docs/GETTING-STARTED.md
Database schema, migrations and upgrades: docs/DATABASE.md
Extrait de openkeel-neutron-fwaas/README.md (en anglais).
API REST
23 opérations de l'API REST d'origine (routes et actions de corps), et leur état dans OpenKeel.
Les tests FWaaS Python réenregistrés sont rejoués contre le service Go, et le pilote OVN est comparé étape par étape avec le vrai pilote Python sur un vrai Northbound.
Rejeu des échanges enregistrés
Rejeu E2E des tests réenregistrés
691 échanges de 135 tests Python, réenregistrés avec l'identité de chaque requête, donnent les mêmes réponses.
Exécution
make e2e-strict, sur go-mysql-server et sur MariaDB 11.4.
Dernier résultat 689 / 691 (2026-10-31) ; les 2 différences sont un chemin hors de l'extension, 404 dans les deux cas.
Quotas, insertion de règles, groupes par défaut et ports tiennent sur trois nœuds.
Exécution
test/galera sur un cluster à 3 nœuds, écritures de quota et insert_rule via un seul nœud.
Dernier résultat 4 tests réussis, 3 exécutions sur 3. Constat ouvert : en lecture-modification-écriture multi-nœuds, des mises à jour sont perdues dans 3 % à 18 % des exécutions.
FWaaS v2 conserve son API sur le seul driver OVN : le chemin d'agent avec iptables, conntrack et NFLOG, le chargeur de plugins et l'outil de synchronisation manuelle disparaissent.
Assuré par la plateforme Cloud Native
Driver d'agent, iptables, conntrack et NFLOG
Repris par OVN
Pourquoi c'est écarté
Les règles de pare-feu sont des ACL et Port_Groups OVN écrits par le service ; les extensions des agents L2 et L3 et leurs topics RPC sont inutiles avec OVN.
Pourquoi la solution n'est pas affectée
Les groupes de pare-feu s'appliquent aux ports de routeur comme avec le driver OVN de Python ; les ports de VM y sont aussi refusés (409). La journalisation réseau NFLOG n'est pas disponible.
Seul ce qui a été écarté par choix de conception figure ici ; le travail pas encore fait se trouve dans les Known gaps du docs/CONFORMANCE.md du module. Tous les modules
Interactions de Neutron-FWaaS
Vue « service » générée par la skill diagramme depuis le modèle d'OpenKeel.