forked from Mirror/frr
libs,zebra: remove zapi nhg encode and decode public apis
The raw zapi apis to encode and decode NHGs don't need to be public; also add a little more validity-checking. Signed-off-by: Mark Stapp <mjs@voltanet.io>
This commit is contained in:
parent
c0b6ef23f7
commit
5898ce6f35
|
@ -996,7 +996,7 @@ done:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
static int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1007,6 +1007,13 @@ int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (api_nhg->nexthop_num >= MULTIPATH_NUM ||
|
||||||
|
api_nhg->backup_nexthop_num >= MULTIPATH_NUM) {
|
||||||
|
flog_err(EC_LIB_ZAPI_ENCODE,
|
||||||
|
"%s: zapi NHG encode with invalid input\n", __func__);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
stream_reset(s);
|
stream_reset(s);
|
||||||
zclient_create_header(s, cmd, VRF_DEFAULT);
|
zclient_create_header(s, cmd, VRF_DEFAULT);
|
||||||
|
|
||||||
|
@ -1024,7 +1031,6 @@ int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||||
zapi_nexthop_encode(s, &api_nhg->nexthops[i], 0, 0);
|
zapi_nexthop_encode(s, &api_nhg->nexthops[i], 0, 0);
|
||||||
|
|
||||||
/* Backup nexthops */
|
/* Backup nexthops */
|
||||||
|
|
||||||
stream_putw(s, api_nhg->backup_nexthop_num);
|
stream_putw(s, api_nhg->backup_nexthop_num);
|
||||||
|
|
||||||
for (i = 0; i < api_nhg->backup_nexthop_num; i++)
|
for (i = 0; i < api_nhg->backup_nexthop_num; i++)
|
||||||
|
|
|
@ -1021,9 +1021,7 @@ bool zapi_ipset_notify_decode(struct stream *s,
|
||||||
uint32_t *unique,
|
uint32_t *unique,
|
||||||
enum zapi_ipset_notify_owner *note);
|
enum zapi_ipset_notify_owner *note);
|
||||||
|
|
||||||
|
/* Nexthop-group message apis */
|
||||||
extern int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg);
|
|
||||||
extern int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg);
|
|
||||||
extern enum zclient_send_status
|
extern enum zclient_send_status
|
||||||
zclient_nhg_send(struct zclient *zclient, int cmd, struct zapi_nhg *api_nhg);
|
zclient_nhg_send(struct zclient *zclient, int cmd, struct zapi_nhg *api_nhg);
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,8 @@
|
||||||
#include "zebra/zebra_opaque.h"
|
#include "zebra/zebra_opaque.h"
|
||||||
#include "zebra/zebra_srte.h"
|
#include "zebra/zebra_srte.h"
|
||||||
|
|
||||||
|
static int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg);
|
||||||
|
|
||||||
/* Encoding helpers -------------------------------------------------------- */
|
/* Encoding helpers -------------------------------------------------------- */
|
||||||
|
|
||||||
static void zserv_encode_interface(struct stream *s, struct interface *ifp)
|
static void zserv_encode_interface(struct stream *s, struct interface *ifp)
|
||||||
|
@ -1742,7 +1744,7 @@ static bool zapi_read_nexthops(struct zserv *client, struct prefix *p,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
static int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||||
{
|
{
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
struct zapi_nexthop *znh;
|
struct zapi_nexthop *znh;
|
||||||
|
|
Loading…
Reference in a new issue