Skip to content

Commit

Permalink
Merge pull request #32 from browningluke/add_quagga_bgp_resources
Browse files Browse the repository at this point in the history
Add Quagga BGP resources
  • Loading branch information
browningluke authored Oct 15, 2023
2 parents 01d6763 + 86008e2 commit b99be64
Show file tree
Hide file tree
Showing 43 changed files with 3,239 additions and 3 deletions.
26 changes: 26 additions & 0 deletions docs/data-sources/quagga_bgp_aspath.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
page_title: "opnsense_quagga_bgp_aspath Data Source - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure AS Path lists for BGP.
---

# opnsense_quagga_bgp_aspath (Data Source)

Configure AS Path lists for BGP.

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) UUID of the resource.

### Read-Only

- `action` (String) Set permit for match or deny to negate the rule.
- `as` (String) The AS pattern you want to match, regexp allowed (e.g. `.$` or `_1$`). It's not validated so please be careful!
- `description` (String) An optional description for this AS path.
- `enabled` (Boolean) Enable this AS path.
- `number` (Number) The ACL rule number (0-4294967294); keep in mind that there are no sequence numbers with AS-Path lists. When you want to add a new line between you have to completely remove the ACL!

27 changes: 27 additions & 0 deletions docs/data-sources/quagga_bgp_communitylist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
page_title: "opnsense_quagga_bgp_communitylist Data Source - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure community lists for BGP.
---

# opnsense_quagga_bgp_communitylist (Data Source)

Configure community lists for BGP.

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) UUID of the resource.

### Read-Only

- `action` (String) Set permit for match or deny to negate the rule.
- `community` (String) The community you want to match. You can also regex and it is not validated so please be careful.
- `description` (String) An optional description for this prefix list.
- `enabled` (Boolean) Enable this community list.
- `number` (Number) Set the number of your Community-List. 1-99 are standard lists while 100-500 are expanded lists.
- `seq_number` (Number) The ACL sequence number (10-99).

47 changes: 47 additions & 0 deletions docs/data-sources/quagga_bgp_neighbor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
page_title: "opnsense_quagga_bgp_neighbor Data Source - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure neighbors for BGP.
---

# opnsense_quagga_bgp_neighbor (Data Source)

Configure neighbors for BGP.

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) UUID of the resource.

### Read-Only

- `as_override` (Boolean) Override AS number of the originating router with the local AS number. This command is only allowed for eBGP peers.
- `attribute_unchanged` (String) Specify attribute to be left unchanged when sending advertisements to a peer. Read more at FRR documentation.
- `bfd` (Boolean) Enable BFD support for this neighbor.
- `connect_timer` (Number) The time in seconds how fast a neighbor tries to reconnect.
- `default_route` (Boolean) Enable to send Defaultroute.
- `description` (String) An optional description for this neighbor.
- `disable_connected_check` (Boolean) Enable to allow peerings between directly connected eBGP peers using loopback addresses.
- `enabled` (Boolean) Enable this neighbor.
- `hold_down` (Number) The time in seconds when a neighbor is considered dead. This is usually 3 times the keepalive timer.
- `keep_alive` (Number) Enable Keepalive timer to check if the neighbor is still up.
- `link_local_interface` (String) Interface to use for IPv6 link-local neighbours. Must be a valid OPNsense interface in lowercase (e.g. `wan`). Please refer to the FRR documentation for more information.
- `local_ip` (String) The local IP connecting to the neighbor. This is only required for BGP authentication.
- `md5_password` (String) The password for BGP authentication.
- `multi_hop` (Boolean) Enable multi-hop. Specifying ebgp-multihop allows sessions with eBGP neighbors to establish when they are multiple hops away. When the neighbor is not directly connected and this knob is not enabled, the session will not establish.
- `multi_protocol` (Boolean) Mark this neighbor as multiprotocol capable per RFC 2283.
- `next_hop_self` (Boolean) Enable the next-hop-self command.
- `next_hop_self_all` (Boolean) Add the parameter "all" after next-hop-self command.
- `peer_ip` (String) The IP of your neighbor.
- `prefix_list_in` (String) The prefix list ID for inbound direction.
- `prefix_list_out` (String) The prefix list ID for outbound direction.
- `remote_as` (Number) The neighbor AS.
- `route_map_in` (String) The route map ID for inbound direction.
- `route_map_out` (String) The route map ID for outbound direction.
- `rr_client` (Boolean) Enable route reflector client.
- `update_source` (String) Physical name of the IPv4 interface facing the peer. Must be a valid OPNsense interface in lowercase (e.g. `wan`). Please refer to the FRR documentation for more information.
- `weight` (Number) Specify a default weight value for the neighbor’s routes.

28 changes: 28 additions & 0 deletions docs/data-sources/quagga_bgp_prefixlist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
page_title: "opnsense_quagga_bgp_prefixlist Data Source - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure prefix lists for BGP.
---

# opnsense_quagga_bgp_prefixlist (Data Source)

Configure prefix lists for BGP.

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) UUID of the resource.

### Read-Only

- `action` (String) Set permit for match or deny to negate the rule.
- `description` (String) An optional description for this prefix list.
- `enabled` (Boolean) Enable this prefix list.
- `ip_version` (String) Set the IP version to use.
- `name` (String) The name of this prefix list.
- `network` (String) The network pattern you want to match. You can also add "ge" or "le" additions after the network statement. It's not validated so please be careful!
- `number` (Number) The ACL sequence number (1-4294967294).

30 changes: 30 additions & 0 deletions docs/data-sources/quagga_bgp_routemap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
page_title: "opnsense_quagga_bgp_routemap Data Source - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure route maps for BGP.
---

# opnsense_quagga_bgp_routemap (Data Source)

Configure route maps for BGP.

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `id` (String) UUID of the resource.

### Read-Only

- `action` (String) Set permit for match or deny to negate the rule.
- `aspaths` (Set of String) Set the AS Path list IDs to use.
- `community_lists` (Set of String) Set the community list IDs to use.
- `description` (String) An optional description for this route map.
- `enabled` (Boolean) Enable this route map.
- `name` (String) The name of this route map.
- `prefix_lists` (Set of String) Set the prefix list IDs to use.
- `route_map_id` (Number) The Route-map ID between 1 and 65535. Be aware that the sorting will be done under the hood, so when you add an entry between it gets to the right position.
- `set` (String) Free text field for your set, please be careful! You can set e.g. `local-preference 300` or `community 1:1` (http://www.nongnu.org/quagga/docs/docs-multi/Route-Map-Set-Command.html#Route-Map-Set-Command). Defaults to `""`.

44 changes: 44 additions & 0 deletions docs/resources/quagga_bgp_aspath.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
page_title: "opnsense_quagga_bgp_aspath Resource - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure AS Path lists for BGP.
---

# opnsense_quagga_bgp_aspath (Resource)

Configure AS Path lists for BGP.

## Example Usage

```terraform
// Configure an AS Path
resource "opnsense_quagga_bgp_aspath" "example0" {
enabled = false
description = "aspath0"
number = 123
action = "permit"
as = "_2$"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `as` (String) The AS pattern you want to match, regexp allowed (e.g. `.$` or `_1$`). It's not validated so please be careful!
- `number` (Number) The ACL rule number (0-4294967294); keep in mind that there are no sequence numbers with AS-Path lists. When you want to add a new line between you have to completely remove the ACL!

### Optional

- `action` (String) Set permit for match or deny to negate the rule. Defaults to `"permit"`.
- `description` (String) An optional description for this AS path. Defaults to `""`.
- `enabled` (Boolean) Enable this AS path. Defaults to `true`.

### Read-Only

- `id` (String) UUID of the AS path.

46 changes: 46 additions & 0 deletions docs/resources/quagga_bgp_communitylist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
page_title: "opnsense_quagga_bgp_communitylist Resource - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure community lists for BGP.
---

# opnsense_quagga_bgp_communitylist (Resource)

Configure community lists for BGP.

## Example Usage

```terraform
// Configure a community list
resource "opnsense_quagga_bgp_communitylist" "example0" {
enabled = false
description = "communitylist0"
number = 100
seq_number = 99
action = "deny"
community = "example.*"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `community` (String) The community you want to match. You can also regex and it is not validated so please be careful.
- `number` (Number) Set the number of your Community-List. 1-99 are standard lists while 100-500 are expanded lists.
- `seq_number` (Number) The ACL sequence number (10-99).

### Optional

- `action` (String) Set permit for match or deny to negate the rule. Defaults to `"permit"`.
- `description` (String) An optional description for this prefix list. Defaults to `""`.
- `enabled` (Boolean) Enable this community list. Defaults to `true`.

### Read-Only

- `id` (String) UUID of the community list.

114 changes: 114 additions & 0 deletions docs/resources/quagga_bgp_neighbor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
page_title: "opnsense_quagga_bgp_neighbor Resource - terraform-provider-opnsense"
subcategory: Quagga
description: |-
Configure neighbors for BGP.
---

# opnsense_quagga_bgp_neighbor (Resource)

Configure neighbors for BGP.

## Example Usage

```terraform
// Configure a prefix list
resource "opnsense_quagga_bgp_prefixlist" "example0" {
enabled = false
description = "prefixlist0"
name = "example0"
number = 1234
action = "permit"
network = "10.10.0.0"
}
// Configure a route map
resource "opnsense_quagga_bgp_routemap" "example0" {
enabled = false
description = "routemap0"
name = "example0"
action = "deny"
route_map_id = 100
set = "local-preference 300"
}
// Configure a neighbor
resource "opnsense_quagga_bgp_neighbor" "example0" {
enabled = false
description = "neighbor0"
peer_ip = "1.1.1.1"
remote_as = 255
md5_password = "12345"
weight = 1
local_ip = "2.2.2.2"
update_source = "wan"
link_local_interface = "wireguard"
next_hop_self = true
next_hop_self_all = true
multi_hop = true
multi_protocol = true
rr_client = true
bfd = true
keep_alive = 100
hold_down = 10
connect_timer = 10
default_route = true
as_override = true
disable_connected_check = true
attribute_unchanged = "as-path"
prefix_list_in = opnsense_quagga_bgp_prefixlist.example0.id
route_map_out = opnsense_quagga_bgp_routemap.example0.id
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `peer_ip` (String) The IP of your neighbor.
- `remote_as` (Number) The neighbor AS.

### Optional

- `as_override` (Boolean) Override AS number of the originating router with the local AS number. This command is only allowed for eBGP peers. Defaults to `false`.
- `attribute_unchanged` (String) Specify attribute to be left unchanged when sending advertisements to a peer. Read more at FRR documentation. Defaults to `""`.
- `bfd` (Boolean) Enable BFD support for this neighbor. Defaults to `false`.
- `connect_timer` (Number) The time in seconds how fast a neighbor tries to reconnect. Defaults to `-1`.
- `default_route` (Boolean) Enable to send Defaultroute. Defaults to `false`.
- `description` (String) An optional description for this neighbor. Defaults to `""`.
- `disable_connected_check` (Boolean) Enable to allow peerings between directly connected eBGP peers using loopback addresses. Defaults to `false`.
- `enabled` (Boolean) Enable this neighbor. Defaults to `true`.
- `hold_down` (Number) The time in seconds when a neighbor is considered dead. This is usually 3 times the keepalive timer. Defaults to `180`.
- `keep_alive` (Number) Enable Keepalive timer to check if the neighbor is still up. Defaults to `60`.
- `link_local_interface` (String) Interface to use for IPv6 link-local neighbours. Must be a valid OPNsense interface in lowercase (e.g. `wan`). Please refer to the FRR documentation for more information. Defaults to `""`.
- `local_ip` (String) The local IP connecting to the neighbor. This is only required for BGP authentication. Defaults to `""`.
- `md5_password` (String) The password for BGP authentication. Defaults to `""`.
- `multi_hop` (Boolean) Enable multi-hop. Specifying ebgp-multihop allows sessions with eBGP neighbors to establish when they are multiple hops away. When the neighbor is not directly connected and this knob is not enabled, the session will not establish. Defaults to `false`.
- `multi_protocol` (Boolean) Mark this neighbor as multiprotocol capable per RFC 2283. Defaults to `false`.
- `next_hop_self` (Boolean) Enable the next-hop-self command. Defaults to `false`.
- `next_hop_self_all` (Boolean) Add the parameter "all" after next-hop-self command. Defaults to `false`.
- `prefix_list_in` (String) The prefix list ID for inbound direction. Defaults to `""`.
- `prefix_list_out` (String) The prefix list ID for outbound direction. Defaults to `""`.
- `route_map_in` (String) The route map ID for inbound direction. Defaults to `""`.
- `route_map_out` (String) The route map ID for outbound direction. Defaults to `""`.
- `rr_client` (Boolean) Enable route reflector client. Defaults to `false`.
- `update_source` (String) Physical name of the IPv4 interface facing the peer. Must be a valid OPNsense interface in lowercase (e.g. `wan`). Please refer to the FRR documentation for more information. Defaults to `""`.
- `weight` (Number) Specify a default weight value for the neighbor’s routes. Defaults to `-1`.

### Read-Only

- `id` (String) UUID of the neighbor.

Loading

0 comments on commit b99be64

Please sign in to comment.