/* Remember to add new entry here if new type is added. */
fprintf(stderr,
"TYPE := { amt | bareudp | bond | bond_slave | bridge | bridge_slave |\n"
- " dsa | dummy | erspan | geneve | gre | gretap | gtp | ifb |\n"
- " ip6erspan | ip6gre | ip6gretap | ip6tnl |\n"
+ " dsa | dummy | erspan | geneve | gre | gretap | gtp | hsr |\n"
+ " ifb | ip6erspan | ip6gre | ip6gretap | ip6tnl |\n"
" ipip | ipoib | ipvlan | ipvtap |\n"
" macsec | macvlan | macvtap | netdevsim |\n"
" netkit | nlmon | pfcp | rmnet | sit | team | team_slave |\n"
{
fprintf(f,
"Usage:\tip link add name NAME type hsr slave1 SLAVE1-IF slave2 SLAVE2-IF\n"
- "\t[ supervision ADDR-BYTE ] [version VERSION] [proto PROTOCOL]\n"
+ "\t[ interlink INTERLINK-IF ] [ supervision ADDR-BYTE ] [ version VERSION ]\n"
+ "\t[ proto PROTOCOL ]\n"
"\n"
"NAME\n"
" name of new hsr device (e.g. hsr0)\n"
"SLAVE1-IF, SLAVE2-IF\n"
" the two slave devices bound to the HSR device\n"
+ "INTERLINK-IF\n"
+ " the interlink device bound to the HSR network to connect SAN device(s)\n"
"ADDR-BYTE\n"
" 0-255; the last byte of the multicast address used for HSR supervision\n"
" frames (default = 0)\n"
if (ifindex == 0)
invarg("No such interface", *argv);
addattr_l(n, 1024, IFLA_HSR_SLAVE2, &ifindex, 4);
+ } else if (strcmp(*argv, "interlink") == 0) {
+ NEXT_ARG();
+ ifindex = ll_name_to_index(*argv);
+ if (ifindex == 0)
+ invarg("No such interface", *argv);
+ addattr_l(n, 1024, IFLA_HSR_INTERLINK, &ifindex, 4);
} else if (matches(*argv, "help") == 0) {
usage();
return -1;
if (tb[IFLA_HSR_SLAVE2] &&
RTA_PAYLOAD(tb[IFLA_HSR_SLAVE2]) < sizeof(__u32))
return;
+ if (tb[IFLA_HSR_INTERLINK] &&
+ RTA_PAYLOAD(tb[IFLA_HSR_INTERLINK]) < sizeof(__u32))
+ return;
if (tb[IFLA_HSR_SEQ_NR] &&
RTA_PAYLOAD(tb[IFLA_HSR_SEQ_NR]) < sizeof(__u16))
return;
else
print_null(PRINT_ANY, "slave2", "slave2 %s ", "<none>");
+ if (tb[IFLA_HSR_INTERLINK])
+ print_color_string(PRINT_ANY, COLOR_IFNAME, "interlink", "interlink %s ",
+ ll_index_to_name(rta_getattr_u32(tb[IFLA_HSR_INTERLINK])));
+
if (tb[IFLA_HSR_SEQ_NR])
print_int(PRINT_ANY,
"seq_nr",
.BI "ip link add link " DEVICE " name " NAME " type hsr"
.BI slave1 " SLAVE1-IF " slave2 " SLAVE2-IF "
+.RB [ " interlink"
+.IR INTERLINK-IF " ] "
.RB [ " supervision"
.IR ADDR-BYTE " ] ["
.BR version " { " 0 " | " 1 " } ["
.BI slave2 " SLAVE2-IF "
- Specifies the physical device used for the second of the two ring ports.
+.BI interlink " INTERLINK-IF"
+- The interlink device bound to the HSR network to connect SAN device(s).
+
.BI supervision " ADDR-BYTE"
- The last byte of the multicast address used for HSR supervision frames.
Default option is "0", possible values 0-255.