diff --git a/priv/decode_gen.escript b/priv/decode_gen.escript index 051f434..b879359 100755 --- a/priv/decode_gen.escript +++ b/priv/decode_gen.escript @@ -849,6 +849,9 @@ define_consts() -> {id, huint32} ]}, + {{linkinfo, vrf}, [{unspec, none}, + {vrf_table, huint32}]}, + {{linkinfo, gtp}, [{unspec, none}, {fd0, huint32}, {fd1, huint32}, diff --git a/src/netlink.erl b/src/netlink.erl index 9a9ab11..963928f 100644 --- a/src/netlink.erl +++ b/src/netlink.erl @@ -959,11 +959,15 @@ nl_rt_dec(Protocol, << Len:32/native-integer, Type:16/native-integer, Flags:16/n nl_rt_dec(_Protocol, << >>, Acc) -> lists:reverse(Acc). +linkinfo_dec(Family, "vrf", Data) -> + nl_dec_nla(Family, fun decode_linkinfo_vrf/3, Data); linkinfo_dec(Family, "gtp", Data) -> nl_dec_nla(Family, fun decode_linkinfo_gtp/3, Data); linkinfo_dec(_Family, _Kind, Data) -> Data. +linkinfo_enc(Family, "vrf", Data) -> + nl_enc_nla(Family, fun encode_linkinfo_vrf/2, Data); linkinfo_enc(Family, "gtp", Data) -> nl_enc_nla(Family, fun encode_linkinfo_gtp/2, Data). diff --git a/src/netlink_decoder_gen.hrl b/src/netlink_decoder_gen.hrl index 0bdbe57..e10c94f 100644 --- a/src/netlink_decoder_gen.hrl +++ b/src/netlink_decoder_gen.hrl @@ -2403,6 +2403,17 @@ decode_genl_ctrl_attr_mcast_grp(_Family, Id, Value) -> %% ============================ +decode_linkinfo_vrf(_Family, 0, Value) -> + {unspec, decode_none(Value)}; + +decode_linkinfo_vrf(_Family, 1, Value) -> + {vrf_table, decode_huint32(Value)}; + +decode_linkinfo_vrf(_Family, Id, Value) -> + {Id, Value}. + +%% ============================ + decode_linkinfo_gtp(_Family, 0, Value) -> {unspec, decode_none(Value)}; @@ -4849,6 +4860,18 @@ encode_genl_ctrl_attr_mcast_grp(_Family, {Type, Value}) %% ============================ +encode_linkinfo_vrf(_Family, {unspec, Value}) -> + encode_none(0, Value); + +encode_linkinfo_vrf(_Family, {vrf_table, Value}) -> + encode_huint32(1, Value); + +encode_linkinfo_vrf(_Family, {Type, Value}) + when is_integer(Type), is_binary(Value) -> + enc_nla(Type, Value). + +%% ============================ + encode_linkinfo_gtp(_Family, {unspec, Value}) -> encode_none(0, Value);