//
//  Licensed to the Apache Software Foundation (ASF) under one or more
//  contributor license agreements.  See the NOTICE file distributed with
//  this work for additional information regarding copyright ownership.
//  The ASF licenses this file to You under the Apache License, Version 2.0
//  (the "License"); you may not use this file except in compliance with
//  the License.  You may obtain a copy of the License at
//
//      https://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//

// Code generated by code-generation. DO NOT EDIT.

[cols="2,2a,2a,2a,4a"]
|===
|Name |Type |Default Value |Required |Description
|Name 4+|KNXNet/IP
|Code 4+|`knxnet-ip`
|Maven Dependency 4+|

[subs=attributes+]
----
<dependency>
  <groupId>org.apache.plc4x</groupId>
  <artifactId>plc4j-driver-knxnetip</artifactId>
  <version>{page-component-version}</version>
</dependency>
----
|Default Transport 4+|`udp`
|Supported Transports 4+|
 - `udp`
5+|Config options:
|`knxproj-file-path` |FILE | | |Path to the `knxproj` file. The default KNXnet/IP protocol doesn't provide all the information needed to be able to fully decode the messages.
|`knxproj-password` |STRING | | |Optional password needed to read the knxproj file.
|`group-address-num-levels` |INT |3| |KNX Addresses can be encoded in multiple ways. Which encoding is used, is too not provided by the protocol itself so it has to be provided externally: +
 +
- 3 Levels: \{main-group (5 bit)}/\{middle-group (3 bit)}/\{sub-group (8 bit)} +
- 2 Levels: \{main-group (5 bit)}/\{sub-group (11 bit)} +
- 1 Level: \{sub-group (16 bit)} +
 +
The default is 3 levels. If the `knxproj-file-path` this information is provided by the file.
|`connection-type` |STRING |LINK_LAYER| |Type of connection used to communicate. Possible values are: +
 +
- 'LINK_LAYER' (default): The client becomes a participant of the KNX bus and gets it's own individual KNX address. +
- 'RAW': The client gets unmanaged access to the bus (be careful with this) +
- 'BUSMONITOR': The client operates as a busmonitor where he can't actively participate on the bus. Only one 'BUSMONITOR' connection is allowed at the same time on a KNXnet/IP gateway.
|`request-timeout-ms` |INT |10000| |Maximum time (in milliseconds) to wait for a reply during the KNXnet/IP search, connect and tunnelling exchanges.
5+|Transport config options:
5+|
+++
<h4>udp</h4>
+++
|`udp.local-address` |STRING | | |Local address to bind to. If not set, binds to all interfaces.
|`udp.local-port` |INT |0| |Local port to bind to. 0 uses ephemeral port.
|`udp.read-timeout-ms` |INT |0| |Socket read timeout in milliseconds. 0 means no timeout.
|`udp.max-packet-size` |INT |65507| |Maximum UDP packet size in bytes.
|`udp.send-buffer-size` |INT |0| |Send buffer size in bytes. 0 uses system default.
|`udp.receive-buffer-size` |INT |0| |Receive buffer size in bytes. 0 uses system default.
|`udp.broadcast` |BOOLEAN |false| |Enable SO_BROADCAST for sending broadcast packets.
|`udp.reuse-address` |BOOLEAN |false| |Enable SO_REUSEADDR to allow multiple bindings to the same address/port.
|`udp.share-socket` |BOOLEAN |false| |Share the underlying UDP socket across multiple transport instances. When true, instances with the same localAddress:localPort will share a socket. This is useful for protocols where multiple logical connections share one UDP port.
|`udp.multicast-ttl` |INT |1| |Time-to-live for multicast packets (1-255).
|===
