diff --git a/docs/reference/.pages b/docs/reference/.pages
index cf78de8c..5449eb07 100644
--- a/docs/reference/.pages
+++ b/docs/reference/.pages
@@ -1,5 +1,5 @@
nav:
- - Fabric API: fabric-api.md
+ - Fabric & Gateway APIs: fabric-api.md
- Fabricator API: fab-api.md
- - Gateway API: gateway-api.md
+ - Gateway API (moved): gateway-api.md
- ...
diff --git a/docs/reference/fabric-api.md b/docs/reference/fabric-api.md
index a6bbe768..4f1265c3 100644
--- a/docs/reference/fabric-api.md
+++ b/docs/reference/fabric-api.md
@@ -1,4 +1,4 @@
-It's an automatically generated reference for the Fabric API.
+It's an automatically generated reference for the Fabric and Gateway APIs.
You can find latest version in the [Fabric repository](https://github.com/githedgehog/fabric/blob/master/docs/api.md).
--8<-- "docs/reference/fabric-api.md.gen"
diff --git a/docs/reference/gateway-api.md b/docs/reference/gateway-api.md
index 0eedaf4a..adc870d2 100644
--- a/docs/reference/gateway-api.md
+++ b/docs/reference/gateway-api.md
@@ -1,4 +1,3 @@
-It's an automatically generated reference for the Gateway API.
-You can find latest version in the [Gateway repository](https://github.com/githedgehog/gateway/blob/master/docs/api.md).
+Gateway API is now included in the [Fabric API](./fabric-api.md).
---8<-- "docs/reference/gateway-api.md.gen"
+This standalone Gateway API reference has been merged into the Fabric API reference, and this page is retained only for backward compatibility with existing links. For up-to-date details, please refer to the Gateway-related sections in the Fabric API documentation.
diff --git a/docs/reference/gateway-api.md.gen b/docs/reference/gateway-api.md.gen
deleted file mode 100644
index e9355346..00000000
--- a/docs/reference/gateway-api.md.gen
+++ /dev/null
@@ -1,778 +0,0 @@
-# API Reference
-
-## Packages
-- [gateway.githedgehog.com/v1alpha1](#gatewaygithedgehogcomv1alpha1)
-- [gwint.githedgehog.com/v1alpha1](#gwintgithedgehogcomv1alpha1)
-
-
-## gateway.githedgehog.com/v1alpha1
-
-Package v1alpha1 contains API Schema definitions for the gateway v1alpha1 API group.
-
-### Resource Types
-- [Gateway](#gateway)
-- [GatewayGroup](#gatewaygroup)
-- [Peering](#peering)
-- [VPCInfo](#vpcinfo)
-
-
-
-#### Gateway
-
-
-
-Gateway is the Schema for the gateways API.
-
-
-
-
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `apiVersion` _string_ | `gateway.githedgehog.com/v1alpha1` | | |
-| `kind` _string_ | `Gateway` | | |
-| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[GatewaySpec](#gatewayspec)_ | | | |
-| `status` _[GatewayStatus](#gatewaystatus)_ | | | |
-
-
-#### GatewayBGPNeighbor
-
-
-
-GatewayBGPNeighbor defines the configuration for a BGP neighbor
-
-
-
-_Appears in:_
-- [GatewaySpec](#gatewayspec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `source` _string_ | Source is the source interface for the BGP neighbor configuration | | |
-| `ip` _string_ | IP is the IP address of the BGP neighbor | | |
-| `asn` _integer_ | ASN is the remote ASN of the BGP neighbor | | |
-
-
-#### GatewayGroup
-
-
-
-GatewayGroup is the Schema for the gatewaygroups API
-
-
-
-
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `apiVersion` _string_ | `gateway.githedgehog.com/v1alpha1` | | |
-| `kind` _string_ | `GatewayGroup` | | |
-| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[GatewayGroupSpec](#gatewaygroupspec)_ | | | |
-| `status` _[GatewayGroupStatus](#gatewaygroupstatus)_ | | | |
-
-
-#### GatewayGroupMembership
-
-
-
-
-
-
-
-_Appears in:_
-- [GatewaySpec](#gatewayspec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `name` _string_ | Name is the name of the group to which the gateway belongs | | |
-| `priority` _integer_ | Priority is the priority of the gateway within the group | | |
-
-
-#### GatewayGroupSpec
-
-
-
-GatewayGroupSpec defines the desired state of GatewayGroup
-
-
-
-_Appears in:_
-- [GatewayGroup](#gatewaygroup)
-
-
-
-#### GatewayGroupStatus
-
-
-
-GatewayGroupStatus defines the observed state of GatewayGroup.
-
-
-
-_Appears in:_
-- [GatewayGroup](#gatewaygroup)
-
-
-
-#### GatewayInterface
-
-
-
-GatewayInterface defines the configuration for a gateway interface
-
-
-
-_Appears in:_
-- [GatewaySpec](#gatewayspec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `pci` _string_ | PCI address of the interface (required for DPDK driver), e.g. 0000:00:01.0 | | |
-| `kernel` _string_ | Kernel is the kernel name of the interface to use (required for kernel driver), e.g. enp2s1 | | |
-| `ips` _string array_ | IPs is the list of IP address to assign to the interface | | |
-| `mtu` _integer_ | MTU for the interface | | |
-
-
-#### GatewayLogLevel
-
-_Underlying type:_ _string_
-
-
-
-
-
-_Appears in:_
-- [GatewayLogs](#gatewaylogs)
-
-| Field | Description |
-| --- | --- |
-| `off` | |
-| `error` | |
-| `warning` | |
-| `info` | |
-| `debug` | |
-| `trace` | |
-
-
-#### GatewayLogs
-
-
-
-GatewayLogs defines the configuration for logging levels
-
-
-
-_Appears in:_
-- [GatewaySpec](#gatewayspec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `default` _[GatewayLogLevel](#gatewayloglevel)_ | | | |
-| `tags` _object (keys:string, values:[GatewayLogLevel](#gatewayloglevel))_ | | | |
-
-
-#### GatewayProfiling
-
-
-
-
-
-
-
-_Appears in:_
-- [GatewaySpec](#gatewayspec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `enabled` _boolean_ | | | |
-
-
-#### GatewaySpec
-
-
-
-GatewaySpec defines the desired state of Gateway.
-
-
-
-_Appears in:_
-- [Gateway](#gateway)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `protocolIP` _string_ | ProtocolIP is used as a loopback IP and BGP Router ID | | |
-| `vtepIP` _string_ | VTEP IP to be used by the gateway | | |
-| `vtepMAC` _string_ | VTEP MAC address to be used by the gateway | | |
-| `asn` _integer_ | ASN is the ASN of the gateway | | |
-| `vtepMTU` _integer_ | VTEPMTU is the MTU for the VTEP interface | | |
-| `interfaces` _object (keys:string, values:[GatewayInterface](#gatewayinterface))_ | Interfaces is a map of interface names to their configurations | | |
-| `neighbors` _[GatewayBGPNeighbor](#gatewaybgpneighbor) array_ | Neighbors is a list of BGP neighbors | | |
-| `logs` _[GatewayLogs](#gatewaylogs)_ | Logs defines the configuration for logging levels | | |
-| `profiling` _[GatewayProfiling](#gatewayprofiling)_ | Profiling defines the configuration for profiling | | |
-| `workers` _integer_ | Workers defines the number of worker threads to use for dataplane | | |
-| `groups` _[GatewayGroupMembership](#gatewaygroupmembership) array_ | Groups is a list of group memberships for the gateway | | |
-
-
-#### GatewayStatus
-
-
-
-GatewayStatus defines the observed state of Gateway.
-
-
-
-_Appears in:_
-- [Gateway](#gateway)
-
-
-
-#### Peering
-
-
-
-Peering is the Schema for the peerings API.
-
-
-
-
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `apiVersion` _string_ | `gateway.githedgehog.com/v1alpha1` | | |
-| `kind` _string_ | `Peering` | | |
-| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[PeeringSpec](#peeringspec)_ | | | |
-| `status` _[PeeringStatus](#peeringstatus)_ | | | |
-
-
-#### PeeringEntry
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringSpec](#peeringspec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `expose` _[PeeringEntryExpose](#peeringentryexpose) array_ | | | |
-
-
-#### PeeringEntryAs
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringEntryExpose](#peeringentryexpose)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `cidr` _string_ | CIDR to include, only one of cidr, not can be set | | |
-| `not` _string_ | CIDR to exclude, only one of cidr, not can be set | | |
-
-
-#### PeeringEntryExpose
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringEntry](#peeringentry)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `ips` _[PeeringEntryIP](#peeringentryip) array_ | | | |
-| `as` _[PeeringEntryAs](#peeringentryas) array_ | | | |
-| `nat` _[PeeringNAT](#peeringnat)_ | | | |
-| `default` _boolean_ | | | |
-
-
-#### PeeringEntryIP
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringEntryExpose](#peeringentryexpose)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `cidr` _string_ | CIDR to include, only one of cidr, not, vpcSubnet can be set | | |
-| `not` _string_ | CIDR to exclude, only one of cidr, not, vpcSubnet can be set | | |
-| `vpcSubnet` _string_ | CIDR by VPC subnet name to include, only one of cidr, not, vpcSubnet can be set | | |
-
-
-#### PeeringNAT
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringEntryExpose](#peeringentryexpose)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `masquerade` _[PeeringNATMasquerade](#peeringnatmasquerade)_ | | | |
-| `portForward` _[PeeringNATPortForward](#peeringnatportforward)_ | | | |
-| `static` _[PeeringNATStatic](#peeringnatstatic)_ | | | |
-
-
-#### PeeringNATMasquerade
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringNAT](#peeringnat)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `idleTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#duration-v1-meta)_ | Time since the last packet after which flows are removed from the connection state table | | |
-
-
-#### PeeringNATPortForward
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringNAT](#peeringnat)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `idleTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#duration-v1-meta)_ | Time since the last packet after which flows are removed from the connection state table | | |
-| `ports` _[PeeringNATPortForwardEntry](#peeringnatportforwardentry) array_ | | | |
-
-
-
-
-#### PeeringNATProtocol
-
-_Underlying type:_ _string_
-
-
-
-_Validation:_
-- Enum: [tcp udp ]
-
-_Appears in:_
-- [PeeringNATPortForwardEntry](#peeringnatportforwardentry)
-
-| Field | Description |
-| --- | --- |
-| `` | Any protocol by default
|
-| `tcp` | TCP only
|
-| `udp` | UDP only
|
-
-
-#### PeeringNATStatic
-
-
-
-
-
-
-
-_Appears in:_
-- [PeeringNAT](#peeringnat)
-
-
-
-#### PeeringSpec
-
-
-
-PeeringSpec defines the desired state of Peering.
-
-
-
-_Appears in:_
-- [Peering](#peering)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `gatewayGroup` _string_ | GatewayGroup is the name of the gateway group that should process the peering | | |
-| `peering` _object (keys:string, values:[PeeringEntry](#peeringentry))_ | Peerings is a map of peering entries for each VPC participating in the peering (keyed by VPC name) | | |
-
-
-#### PeeringStatus
-
-
-
-PeeringStatus defines the observed state of Peering.
-
-
-
-_Appears in:_
-- [Peering](#peering)
-
-
-
-#### VPCInfo
-
-
-
-VPCInfo is the Schema for the vpcinfos API.
-
-
-
-
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `apiVersion` _string_ | `gateway.githedgehog.com/v1alpha1` | | |
-| `kind` _string_ | `VPCInfo` | | |
-| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `spec` _[VPCInfoSpec](#vpcinfospec)_ | | | |
-| `status` _[VPCInfoStatus](#vpcinfostatus)_ | | | |
-
-
-#### VPCInfoSpec
-
-
-
-VPCInfoSpec defines the desired state of VPCInfo.
-
-
-
-_Appears in:_
-- [VPCInfo](#vpcinfo)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `subnets` _object (keys:string, values:[VPCInfoSubnet](#vpcinfosubnet))_ | Subnets is a map of all subnets in the VPC (incl. CIDRs, VNIs, etc) keyed by the subnet name | | |
-| `vni` _integer_ | VNI is the VNI for the VPC | | |
-
-
-#### VPCInfoStatus
-
-
-
-VPCInfoStatus defines the observed state of VPCInfo.
-
-
-
-_Appears in:_
-- [VPCInfo](#vpcinfo)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `internalID` _string_ | | | |
-
-
-#### VPCInfoSubnet
-
-
-
-
-
-
-
-_Appears in:_
-- [VPCInfoSpec](#vpcinfospec)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `cidr` _string_ | CIDR is the subnet CIDR block, such as "10.0.0.0/24" | | |
-
-
-
-## gwint.githedgehog.com/v1alpha1
-
-Package v1alpha1 contains API Schema definitions for the gwint v1alpha1 API group.
-
-### Resource Types
-- [GatewayAgent](#gatewayagent)
-
-
-
-#### BGPMessageCounters
-
-
-
-
-
-
-
-_Appears in:_
-- [BGPMessages](#bgpmessages)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `capability` _integer_ | | | |
-| `keepalive` _integer_ | | | |
-| `notification` _integer_ | | | |
-| `open` _integer_ | | | |
-| `routeRefresh` _integer_ | | | |
-| `update` _integer_ | | | |
-
-
-#### BGPMessages
-
-
-
-
-
-
-
-_Appears in:_
-- [BGPNeighborStatus](#bgpneighborstatus)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `received` _[BGPMessageCounters](#bgpmessagecounters)_ | | | |
-| `sent` _[BGPMessageCounters](#bgpmessagecounters)_ | | | |
-
-
-#### BGPNeighborPrefixes
-
-
-
-
-
-
-
-_Appears in:_
-- [BGPNeighborStatus](#bgpneighborstatus)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `received` _integer_ | | | |
-| `receivedPrePolicy` _integer_ | | | |
-| `sent` _integer_ | | | |
-
-
-#### BGPNeighborSessionState
-
-_Underlying type:_ _string_
-
-BGPNeighborSessionState represents the BGP FSM state for a neighbor.
-
-_Validation:_
-- Enum: [unset idle connect active open established]
-
-_Appears in:_
-- [BGPNeighborStatus](#bgpneighborstatus)
-
-| Field | Description |
-| --- | --- |
-| `unset` | |
-| `idle` | |
-| `connect` | |
-| `active` | |
-| `open` | |
-| `established` | |
-
-
-#### BGPNeighborStatus
-
-
-
-
-
-
-
-_Appears in:_
-- [BGPVRFStatus](#bgpvrfstatus)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `enabled` _boolean_ | | | |
-| `localAS` _integer_ | | | |
-| `peerAS` _integer_ | | | |
-| `remoteRouterID` _string_ | | | |
-| `sessionState` _[BGPNeighborSessionState](#bgpneighborsessionstate)_ | | | Enum: [unset idle connect active open established]
|
-| `connectionsDropped` _integer_ | | | |
-| `establishedTransitions` _integer_ | | | |
-| `lastResetReason` _string_ | | | |
-| `messages` _[BGPMessages](#bgpmessages)_ | | | |
-| `ipv4UnicastPrefixes` _[BGPNeighborPrefixes](#bgpneighborprefixes)_ | | | |
-| `ipv6UnicastPrefixes` _[BGPNeighborPrefixes](#bgpneighborprefixes)_ | | | |
-| `l2VPNEVPNPrefixes` _[BGPNeighborPrefixes](#bgpneighborprefixes)_ | | | |
-
-
-#### BGPStatus
-
-
-
-BGPStatus represents BGP status across VRFs, derived from BMP/FRR.
-
-
-
-_Appears in:_
-- [GatewayState](#gatewaystate)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `vrfs` _object (keys:string, values:[BGPVRFStatus](#bgpvrfstatus))_ | VRFs keyed by VRF name (e.g. "default", "vrfVvpc-1") | | |
-
-
-#### BGPVRFStatus
-
-
-
-
-
-
-
-_Appears in:_
-- [BGPStatus](#bgpstatus)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `neighbors` _object (keys:string, values:[BGPNeighborStatus](#bgpneighborstatus))_ | Neighbors keyed by an ip address string | | |
-
-
-#### DataplaneStatus
-
-
-
-DataplaneStatus represents the status of the dataplane
-
-
-
-_Appears in:_
-- [GatewayState](#gatewaystate)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `version` _string_ | | | |
-
-
-#### FRRStatus
-
-
-
-FRRStatus represents the status of the FRR daemon
-
-
-
-_Appears in:_
-- [GatewayState](#gatewaystate)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `lastAppliedGen` _integer_ | LastAppliedGen is the generation of the last successful application of a configuration to the FRR | | |
-
-
-#### GatewayAgent
-
-
-
-GatewayAgent is the Schema for the gatewayagents API.
-
-
-
-
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `apiVersion` _string_ | `gwint.githedgehog.com/v1alpha1` | | |
-| `kind` _string_ | `GatewayAgent` | | |
-| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `status` _[GatewayAgentStatus](#gatewayagentstatus)_ | | | |
-
-
-#### GatewayAgentStatus
-
-
-
-GatewayAgentStatus defines the observed state of GatewayAgent.
-
-
-
-_Appears in:_
-- [GatewayAgent](#gatewayagent)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `agentVersion` _string_ | AgentVersion is the version of the gateway agent | | |
-| `lastAppliedTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#time-v1-meta)_ | Time of the last successful configuration application | | |
-| `lastAppliedGen` _integer_ | Generation of the last successful configuration application | | |
-| `lastHeartbeat` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#time-v1-meta)_ | Time of the last heartbeat from the agent | | |
-| `state` _[GatewayState](#gatewaystate)_ | State represents collected data from the dataplane API that includes FRR as well | | |
-
-
-#### GatewayState
-
-
-
-GatewayState represents collected data from the dataplane API that includes FRR as well
-
-
-
-_Appears in:_
-- [GatewayAgentStatus](#gatewayagentstatus)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `lastCollectedTime` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.32/#time-v1-meta)_ | LastCollectedTime is the time of the last successful collection of data from the dataplane API | | |
-| `dataplane` _[DataplaneStatus](#dataplanestatus)_ | Dataplane is the status of the dataplane | | |
-| `frr` _[FRRStatus](#frrstatus)_ | FRR is the status of the FRR daemon | | |
-| `vpcs` _object (keys:string, values:[VPCStatus](#vpcstatus))_ | VPCs is the status of the VPCs where key is the vpc (vpcinfo) name | | |
-| `peerings` _object (keys:string, values:[PeeringStatus](#peeringstatus))_ | Peerings is the status of the VPCs peerings where key is VPC1->VPC2 and data is for one direction only | | |
-| `bgp` _[BGPStatus](#bgpstatus)_ | BGP is BGP status | | |
-
-
-#### PeeringStatus
-
-
-
-PeeringStatus represents the status of a peering between a pair of VPCs in one direction
-
-
-
-_Appears in:_
-- [GatewayState](#gatewaystate)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `p` _integer_ | Packets is the number of packets sent on the peering | | |
-| `b` _integer_ | Bytes is the number of bytes sent on the peering | | |
-| `d` _integer_ | Drops is the number of packets dropped on the peering | | |
-| `bps` _float_ | BytesPerSecond is the number of bytes sent per second on the peering | | |
-| `pps` _float_ | PktsPerSecond is the number of packets sent per second on the peering | | |
-
-
-#### VPCStatus
-
-
-
-
-
-
-
-_Appears in:_
-- [GatewayState](#gatewaystate)
-
-| Field | Description | Default | Validation |
-| --- | --- | --- | --- |
-| `p` _integer_ | Packets is the number of packets sent on the vpc | | |
-| `b` _integer_ | Bytes is the number of bytes sent on the vpc | | |
-| `d` _integer_ | Drops is the number of packets dropped on the vpc | | |
-
-