.TH TIPC-BEARER 8 "02 Jun 2015" "iproute2" "Linux"

.\" For consistency, please keep padding right aligned.
.\" For example '.B "foo " bar' and not '.B foo " bar"'

.SH NAME
tipc-bearer \- show or modify TIPC bearers

.SH SYNOPSIS
.ad l
.in +8

.ti -8
.B tipc bearer enable
.RB "[ " domain
.IR DOMAIN " ]"
.RB "[ " priority
.IR PRIORITY " ]"
.BR media
.br
.RB "{ { " eth " | " ib " } " device
.IR "DEVICE" " }"
.RB "|"
.br
.RB	"{ " udp
.B name
.IR NAME
.B localip
.IR LOCALIP
.RB "[ " localport
.IR LOCALPORT " ]"
.RB "[ " remoteip
.IR REMOTEIP " ]"
.RB "[ " remoteport
.IR REMOTEPORT " ] }"
.br

.ti -8
.B tipc bearer disable media
.br
.RB "{ { " eth " | " ib " } " device
.IR DEVICE
.RB "|"
.br
.RB "{ " udp
.B name
.IR NAME
.B localip
.IR LOCALIP " } }"
.br

.ti -8
.B tipc bearer set
.RB "{ " "priority "
.IR PRIORITY
.RB "| " tolerance
.IR TOLERANCE
.RB "| " window
.IR WINDOW
.RB "} " media
.br
.RB "{ { " eth " | " ib " } " device
.IR "DEVICE" " }"
.RB "|"
.br
.RB "{ " udp
.B name
.IR NAME
.B localip
.IR LOCALIP " } }"
.br

.ti -8
.B tipc bearer get
.RB "{ " "priority" " | " tolerance " | " window " } " media
.br
.RB "{ { " eth " | " ib " } " device
.IR "DEVICE" " }"
.RB "|"
.br
.RB "{ " udp
.B name
.IR NAME
.B localip
.IR LOCALIP " } }"
.br

.ti -8
.B tipc bearer list
.br

.SH OPTIONS
Options (flags) that can be passed anywhere in the command chain.
.TP
.BR "\-h" , " --help"
Show help about last valid command. For example
.B tipc bearer --help
will show bearer help and
.B tipc --help
will show general help. The position of the option in the string is irrelevant.
.SH DESCRIPTION

.SS Bearer identification
.TP
.BI "media " MEDIA
.br
Specifies the TIPC media type for a particular bearer to operate on.
Different media types have different ways of identifying a unique bearer.
For example,
.BR "ib " "and " eth
identify a bearer with a
.I DEVICE
while
.B udp
identify a bearer with a
.IR "LOCALIP " "and a " NAME

.B ib
- Infiniband
.sp
.B eth
- Ethernet
.sp
.B udp
- User Datagram Protocol (UDP)
.sp

.TP
.BI "name " NAME
.br
Logical bearer identifier valid for bearers on
.B udp
media.

.TP
.BI "device " DEVICE
.br
Physical bearer device valid for bearers on
.B eth
and
.B ib
media.

.SS Bearer properties

.TP
.B domain
.br
The addressing domain (region) in which a bearer will establish links and accept
link establish requests.

.TP
.B priority
.br
Default link priority inherited by all links subsequently established over a
bearer. A single bearer can only host one link to a particular node. This means
the default link priority for a bearer typically affects which bearer to use
when communicating with a particular node in an multi bearer setup. For more
info about link priority see
.BR tipc-link (8)

.TP
.B tolerance
.br
Default link tolerance inherited by all links subsequently established over a
bearer. For more info about link tolerance see
.BR tipc-link (8)

.TP
.B window
.br
Default link window inherited by all links subsequently established over a
bearer. For more info about the link window size see
.BR tipc-link (8)

.SS UDP bearer options

.TP
.BI "localip " LOCALIP
.br
Specify a local IP v4/v6 address for a
.B udp
bearer.

.TP
.BI "localport " LOCALPORT
.br
Specify the local port for a
.B udp
bearer. The default port 6118 is used if no port is specified.

.TP
.BI "remoteip " REMOTEIP
.br
Specify a remote IP for a
.B udp
bearer. If no remote IP is specified a
.B udp
bearer runs in multicast mode and tries to auto-discover its neighbours.
The multicast IP address is generated based on the TIPC network ID. If a remote
IP is specified the
.B udp
bearer runs in point-to-point mode.

.TP
.BI "remoteport " REMOTEPORT
.br
Specify the remote port for a
.B udp
bearer. The default port 6118 is used if no port is specified.

.SH EXIT STATUS
Exit status is 0 if command was successful or a positive integer upon failure.

.SH SEE ALSO
.BR tipc (8),
.BR tipc-link (8),
.BR tipc-media (8),
.BR tipc-nametable (8),
.BR tipc-node (8),
.BR tipc-peer (8),
.BR tipc-socket (8)
.br
.SH REPORTING BUGS
Report any bugs to the Network Developers mailing list
.B <netdev@vger.kernel.org>
where the development and maintenance is primarily done.
You do not have to be subscribed to the list to send a message there.

.SH AUTHOR
Richard Alpe <richard.alpe@ericsson.com>
