diff options
Diffstat (limited to 'zebra/kernel_netlink.c')
| -rw-r--r-- | zebra/kernel_netlink.c | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index c98f1ce60c..6f9c5008af 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -741,58 +741,6 @@ void nl_attr_rtnh_end(struct nlmsghdr *n, struct rtnexthop *rtnh) rtnh->rtnh_len = (uint8_t *)NLMSG_TAIL(n) - (uint8_t *)rtnh; } -bool nl_rta_put(struct rtattr *rta, unsigned int maxlen, int type, - const void *data, int alen) -{ - struct rtattr *subrta; - int len = RTA_LENGTH(alen); - - if (RTA_ALIGN(rta->rta_len) + RTA_ALIGN(len) > maxlen) { - zlog_err("ERROR max allowed bound %d exceeded for rtattr", - maxlen); - return false; - } - subrta = (struct rtattr *)(((char *)rta) + RTA_ALIGN(rta->rta_len)); - subrta->rta_type = type; - subrta->rta_len = len; - if (alen) - memcpy(RTA_DATA(subrta), data, alen); - rta->rta_len = NLMSG_ALIGN(rta->rta_len) + RTA_ALIGN(len); - - return true; -} - -bool nl_rta_put16(struct rtattr *rta, unsigned int maxlen, int type, - uint16_t data) -{ - return nl_rta_put(rta, maxlen, type, &data, sizeof(uint16_t)); -} - -bool nl_rta_put64(struct rtattr *rta, unsigned int maxlen, int type, - uint64_t data) -{ - return nl_rta_put(rta, maxlen, type, &data, sizeof(uint64_t)); -} - -struct rtattr *nl_rta_nest(struct rtattr *rta, unsigned int maxlen, int type) -{ - struct rtattr *nest = RTA_TAIL(rta); - - if (nl_rta_put(rta, maxlen, type, NULL, 0)) - return NULL; - - nest->rta_type |= NLA_F_NESTED; - - return nest; -} - -int nl_rta_nest_end(struct rtattr *rta, struct rtattr *nest) -{ - nest->rta_len = (uint8_t *)RTA_TAIL(rta) - (uint8_t *)nest; - - return rta->rta_len; -} - const char *nl_msg_type_to_str(uint16_t msg_type) { return lookup_msg(nlmsg_str, msg_type, ""); |
