# bigip_message_routing_router – Manages router profiles for message-routing protocols

New in version 2.9.

- Synopsis

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Manages router profiles for message-routing protocols.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
description string |  | The user defined description of the router profile.

ignore_client_port
boolean

Choices:
- no
- yes

When `yes`, the remote port on clientside connections ie. connections where the peer connected to the BIG-IP is ignored when searching for an existing connection.

inherited_traffic_group
boolean

Choices:
- no
- yes

When set to `yes` the `traffic_group` will be inherited from the containing folder. When not specified the system sets this to `no` when creating new router profile.

max_pending_bytes integer |  | The maximum number of bytes worth of pending messages that will be held while waiting for a connection to a peer to be created. Once reached, any additional messages to the peer will be flagged as undeliverable and returned to the originator. The accepted range is between 0 and 4294967295 inclusive.
max_pending_messages integer |  | The maximum number of pending messages that will be held while waiting for a connection to a peer to be created. Once reached, any additional messages to the peer will be flagged as undeliverable and returned to the originator. The accepted range is between 0 and 65535 inclusive.
max_retries integer |  | Sets the maximum number of time a message may be resubmitted for rerouting by the `MR::retry` iRule command. The accepted range is between 0 and 4294967295 inclusive.

mirror
boolean

Choices:
- no
- yes

Enables or disables state mirroring. State mirroring can be used to maintain the same state information in the standby unit that is in the active unit.

mirrored_msg_sweeper_interval integer |  | Specifies the maximum time in milliseconds that a message will be held on the standby device as it waits for the active device to route the message. Messages on the standby device held for longer then the configurable sweeper interval, will be dropped. The accepted range is between 0 and 4294967295 inclusive.
name string / required |  | Specifies the name of the router profile.
parent string |  | The parent template of this router profile. Once this value has been set, it cannot be changed. The default values are set by the system if not specified and they correspond to the router type created, ie. `/Common/messagerouter` for `generic` `type` and so on.
partition string | Default: "Common" | Device partition to create router profile on.
provider dictionary added in 2.5 |  | A dict object containing connection details.
| auth_provider string |  | Configures the auth provider for to obtain authentication tokens from the remote device. This option is really used when working with BIG-IQ devices.
| password string / required |  | The password for the user account used to connect to the BIG-IP. You may omit this option by setting the environment variable `F5_PASSWORD`. aliases: pass, pwd
| server string / required |  | The BIG-IP host. You may omit this option by setting the environment variable `F5_SERVER`.
| server_port integer | Default: 443 | The BIG-IP server port. You may omit this option by setting the environment variable `F5_SERVER_PORT`.
| ssh_keyfile path |  | Specifies the SSH keyfile to use to authenticate the connection to the remote device. This argument is only used for cli transports. You may omit this option by setting the environment variable `ANSIBLE_NET_SSH_KEYFILE`.
| timeout integer |  | Specifies the timeout in seconds for communicating with the network device for either connecting or sending commands. If the timeout is exceeded before the operation is completed, the module will error.

transport
string

Choices:
- cli
- rest ←

Configures the transport connection to use when connecting to the remote device.

| user string / required |  | The username to connect to the BIG-IP with. This user must have administrative privileges on the device. You may omit this option by setting the environment variable `F5_USER`.

validate_certs
boolean

Choices:
- no
- yes ←

If `no`, SSL certificates are not validated. Use this only on personally controlled sites using self-signed certificates.
You may omit this option by setting the environment variable `F5_VALIDATE_CERTS`.

routes list |  | Specifies a list of static routes for the router instance to use. The route must be on the same partition as router profile.

state
string

Choices:
- present ←
- absent

When `present`, ensures that the router profile exists.
When `absent`, ensures the router profile is removed.

traffic_group string |  | Specifies the traffic-group of the router profile. Setting the `traffic_group` to an empty string value `""` will cause the device to inherit from containing folder, which means the value of `inherited_traffic_group` on device will be `yes`.

type
string

Choices:
- generic ←

Parameter used to specify the type of the router profile to manage.
Default setting is `generic` with more options added in future.

use_local_connection
boolean

Choices:
- no
- yes

If `yes`, the router will route a message to an existing connection on the same TMM as the message was received on.

## Notes

Note

- Requires BIG-IP >= 14.0.0

- For more information on using Ansible to manage F5 Networks devices see https://www.ansible.com/integrations/networks/f5.

- Requires BIG-IP software version >= 12.

- The F5 modules only manipulate the running configuration of the F5 product. To ensure that BIG-IP specific configuration persists to disk, be sure to include at least one task that uses the bigip_config module to save the running configuration. Refer to the module’s documentation for the correct usage of the module to save your running configuration.

## Examples

    - name: Create a generic router profile
      bigip_message_routing_router:
        name: foo
        max_retries: 10
        ignore_client_port: yes
        routes:
          - /Common/route1
          - /Common/route2
        provider:
          password: secret
          server: lb.mydomain.com
          user: admin
      delegate_to: localhost

    - name: Modify a generic router profile
      bigip_message_routing_router:
        name: foo
        ignore_client_port: no
        mirror: yes
        mirrored_msg_sweeper_interval: 4000
        traffic_group: /Common/traffic-group-2
        provider:
          password: secret
          server: lb.mydomain.com
          user: admin
      delegate_to: localhost

    - name: Remove a generic router profile
      bigip_message_routing_router:
        name: foo
        state: absent
        provider:
          password: secret
          server: lb.mydomain.com
          user: admin
      delegate_to: localhost

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
description string | changed | The user defined description of the router profile. Sample: My description
ignore_client_port boolean | changed | Enables ignoring of the remote port on clientside connections when searching for an existing connection.
inherited_traffic_group boolean | changed | Specifies if traffic-group should be inherited from containing folder. Sample: True
max_pending_bytes integer | changed | The maximum number of bytes worth of pending messages that will be held. Sample: 10000
max_pending_messages integer | changed | The maximum number of pending messages that will be held. Sample: 64
max_retries integer | changed | The maximum number of time a message may be resubmitted for rerouting. Sample: 10
mirror boolean | changed | Enables or disables state mirroring. Sample: True
mirrored_msg_sweeper_interval integer | changed | The maximum time in milliseconds that a message will be held on the standby device. Sample: 2000
parent string | changed | The parent template of this router profile. Sample: /Common/messagerouter
routes list | changed | The list of static routes for the router instance to use. Sample: ['/Common/route1', '/Common/route2']
traffic_group string | changed | The traffic-group of the router profile. Sample: /Common/traffic-group-1
use_local_connection boolean | changed | Enables routing of messages to an existing connection on the same TMM as the message was received on. Sample: True

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by an Ansible Partner. [certified]

### Authors

- Wojciech Wypior (@wojtek0806)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.