X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vnet%2Fvnet%2Flisp-cp%2Flisp_types.c;h=d206e6bcceffae7d3045b352b9126494084f4483;hb=397fd7d39f023887e428de37a1929c366a99b8d5;hp=04b8462e4fcbecb69bcfb85961db6b3b228b800f;hpb=b09167f33d3c79e7ccc27e0fc484cc5fbcdb9943;p=vpp.git diff --git a/vnet/vnet/lisp-cp/lisp_types.c b/vnet/vnet/lisp-cp/lisp_types.c index 04b8462e4fc..d206e6bccef 100644 --- a/vnet/vnet/lisp-cp/lisp_types.c +++ b/vnet/vnet/lisp-cp/lisp_types.c @@ -269,6 +269,31 @@ unformat_fid_address (unformat_input_t * i, va_list * args) return 1; } +uword +unformat_hmac_key_id (unformat_input_t * input, va_list * args) +{ + u32 *key_id = va_arg (*args, u32 *); + u8 *s = 0; + + if (unformat (input, "%s", &s)) + { + if (!strcmp ((char *) s, "sha1")) + key_id[0] = HMAC_SHA_1_96; + else if (!strcmp ((char *) s, "sha256")) + key_id[0] = HMAC_SHA_256_128; + else + { + clib_warning ("invalid key_id: '%s'", s); + key_id[0] = HMAC_NO_KEY; + } + } + else + return 0; + + vec_free (s); + return 1; +} + uword unformat_gid_address (unformat_input_t * input, va_list * args) { @@ -333,6 +358,24 @@ unformat_negative_mapping_action (unformat_input_t * input, va_list * args) return 1; } +u8 * +format_hmac_key_id (u8 * s, va_list * args) +{ + lisp_key_type_t key_id = va_arg (*args, lisp_key_type_t); + + switch (key_id) + { + case HMAC_SHA_1_96: + return format (0, "sha1"); + case HMAC_SHA_256_128: + return format (0, "sha256"); + default: + return 0; + } + + return 0; +} + u8 * format_negative_mapping_action (u8 * s, va_list * args) { @@ -678,6 +721,14 @@ gid_address_free (gid_address_t * a) (*lcaf_free_fcts[lcaf_type]) (lcaf); } +void +gid_address_from_ip (gid_address_t * g, ip_address_t * ip) +{ + memset (g, 0, sizeof (g[0])); + ip_address_set (&gid_address_ip (g), ip, ip_addr_version (ip)); + gid_address_ippref_len (g) = 32; +} + int ip_address_cmp (const ip_address_t * ip1, const ip_address_t * ip2) {