#include "config.h"
/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: fpm/fpm.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "fpm/fpm.pb-c.h"
void   fpm__nexthop__init
                     (Fpm__Nexthop         *message)
{
  static const Fpm__Nexthop init_value = FPM__NEXTHOP__INIT;
  *message = init_value;
}
size_t fpm__nexthop__get_packed_size
                     (const Fpm__Nexthop *message)
{
  assert(message->base.descriptor == &fpm__nexthop__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__nexthop__pack
                     (const Fpm__Nexthop *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__nexthop__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__nexthop__pack_to_buffer
                     (const Fpm__Nexthop *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__nexthop__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__Nexthop *
       fpm__nexthop__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__Nexthop *)
     protobuf_c_message_unpack (&fpm__nexthop__descriptor,
                                allocator, len, data);
}
void   fpm__nexthop__free_unpacked
                     (Fpm__Nexthop *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__nexthop__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fpm__route_key__init
                     (Fpm__RouteKey         *message)
{
  static const Fpm__RouteKey init_value = FPM__ROUTE_KEY__INIT;
  *message = init_value;
}
size_t fpm__route_key__get_packed_size
                     (const Fpm__RouteKey *message)
{
  assert(message->base.descriptor == &fpm__route_key__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__route_key__pack
                     (const Fpm__RouteKey *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__route_key__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__route_key__pack_to_buffer
                     (const Fpm__RouteKey *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__route_key__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__RouteKey *
       fpm__route_key__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__RouteKey *)
     protobuf_c_message_unpack (&fpm__route_key__descriptor,
                                allocator, len, data);
}
void   fpm__route_key__free_unpacked
                     (Fpm__RouteKey *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__route_key__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fpm__delete_route__init
                     (Fpm__DeleteRoute         *message)
{
  static const Fpm__DeleteRoute init_value = FPM__DELETE_ROUTE__INIT;
  *message = init_value;
}
size_t fpm__delete_route__get_packed_size
                     (const Fpm__DeleteRoute *message)
{
  assert(message->base.descriptor == &fpm__delete_route__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__delete_route__pack
                     (const Fpm__DeleteRoute *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__delete_route__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__delete_route__pack_to_buffer
                     (const Fpm__DeleteRoute *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__delete_route__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__DeleteRoute *
       fpm__delete_route__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__DeleteRoute *)
     protobuf_c_message_unpack (&fpm__delete_route__descriptor,
                                allocator, len, data);
}
void   fpm__delete_route__free_unpacked
                     (Fpm__DeleteRoute *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__delete_route__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fpm__add_route__init
                     (Fpm__AddRoute         *message)
{
  static const Fpm__AddRoute init_value = FPM__ADD_ROUTE__INIT;
  *message = init_value;
}
size_t fpm__add_route__get_packed_size
                     (const Fpm__AddRoute *message)
{
  assert(message->base.descriptor == &fpm__add_route__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__add_route__pack
                     (const Fpm__AddRoute *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__add_route__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__add_route__pack_to_buffer
                     (const Fpm__AddRoute *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__add_route__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__AddRoute *
       fpm__add_route__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__AddRoute *)
     protobuf_c_message_unpack (&fpm__add_route__descriptor,
                                allocator, len, data);
}
void   fpm__add_route__free_unpacked
                     (Fpm__AddRoute *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__add_route__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fpm__srv6_sidformat__init
                     (Fpm__SRv6SIDFormat         *message)
{
  static const Fpm__SRv6SIDFormat init_value = FPM__SRV6_SIDFORMAT__INIT;
  *message = init_value;
}
size_t fpm__srv6_sidformat__get_packed_size
                     (const Fpm__SRv6SIDFormat *message)
{
  assert(message->base.descriptor == &fpm__srv6_sidformat__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__srv6_sidformat__pack
                     (const Fpm__SRv6SIDFormat *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__srv6_sidformat__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__srv6_sidformat__pack_to_buffer
                     (const Fpm__SRv6SIDFormat *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__srv6_sidformat__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__SRv6SIDFormat *
       fpm__srv6_sidformat__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__SRv6SIDFormat *)
     protobuf_c_message_unpack (&fpm__srv6_sidformat__descriptor,
                                allocator, len, data);
}
void   fpm__srv6_sidformat__free_unpacked
                     (Fpm__SRv6SIDFormat *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__srv6_sidformat__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fpm__srv6_local_sid__end__init
                     (Fpm__SRv6LocalSID__End         *message)
{
  static const Fpm__SRv6LocalSID__End init_value = FPM__SRV6_LOCAL_SID__END__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_x__init
                     (Fpm__SRv6LocalSID__EndX         *message)
{
  static const Fpm__SRv6LocalSID__EndX init_value = FPM__SRV6_LOCAL_SID__END_X__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_t__init
                     (Fpm__SRv6LocalSID__EndT         *message)
{
  static const Fpm__SRv6LocalSID__EndT init_value = FPM__SRV6_LOCAL_SID__END_T__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_dx6__init
                     (Fpm__SRv6LocalSID__EndDX6         *message)
{
  static const Fpm__SRv6LocalSID__EndDX6 init_value = FPM__SRV6_LOCAL_SID__END_DX6__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_dx4__init
                     (Fpm__SRv6LocalSID__EndDX4         *message)
{
  static const Fpm__SRv6LocalSID__EndDX4 init_value = FPM__SRV6_LOCAL_SID__END_DX4__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_dt6__init
                     (Fpm__SRv6LocalSID__EndDT6         *message)
{
  static const Fpm__SRv6LocalSID__EndDT6 init_value = FPM__SRV6_LOCAL_SID__END_DT6__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_dt4__init
                     (Fpm__SRv6LocalSID__EndDT4         *message)
{
  static const Fpm__SRv6LocalSID__EndDT4 init_value = FPM__SRV6_LOCAL_SID__END_DT4__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__end_dt46__init
                     (Fpm__SRv6LocalSID__EndDT46         *message)
{
  static const Fpm__SRv6LocalSID__EndDT46 init_value = FPM__SRV6_LOCAL_SID__END_DT46__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__un__init
                     (Fpm__SRv6LocalSID__UN         *message)
{
  static const Fpm__SRv6LocalSID__UN init_value = FPM__SRV6_LOCAL_SID__UN__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__ua__init
                     (Fpm__SRv6LocalSID__UA         *message)
{
  static const Fpm__SRv6LocalSID__UA init_value = FPM__SRV6_LOCAL_SID__UA__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__udt6__init
                     (Fpm__SRv6LocalSID__UDT6         *message)
{
  static const Fpm__SRv6LocalSID__UDT6 init_value = FPM__SRV6_LOCAL_SID__UDT6__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__udt4__init
                     (Fpm__SRv6LocalSID__UDT4         *message)
{
  static const Fpm__SRv6LocalSID__UDT4 init_value = FPM__SRV6_LOCAL_SID__UDT4__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__udt46__init
                     (Fpm__SRv6LocalSID__UDT46         *message)
{
  static const Fpm__SRv6LocalSID__UDT46 init_value = FPM__SRV6_LOCAL_SID__UDT46__INIT;
  *message = init_value;
}
void   fpm__srv6_local_sid__init
                     (Fpm__SRv6LocalSID         *message)
{
  static const Fpm__SRv6LocalSID init_value = FPM__SRV6_LOCAL_SID__INIT;
  *message = init_value;
}
size_t fpm__srv6_local_sid__get_packed_size
                     (const Fpm__SRv6LocalSID *message)
{
  assert(message->base.descriptor == &fpm__srv6_local_sid__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__srv6_local_sid__pack
                     (const Fpm__SRv6LocalSID *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__srv6_local_sid__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__srv6_local_sid__pack_to_buffer
                     (const Fpm__SRv6LocalSID *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__srv6_local_sid__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__SRv6LocalSID *
       fpm__srv6_local_sid__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__SRv6LocalSID *)
     protobuf_c_message_unpack (&fpm__srv6_local_sid__descriptor,
                                allocator, len, data);
}
void   fpm__srv6_local_sid__free_unpacked
                     (Fpm__SRv6LocalSID *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__srv6_local_sid__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   fpm__message__init
                     (Fpm__Message         *message)
{
  static const Fpm__Message init_value = FPM__MESSAGE__INIT;
  *message = init_value;
}
size_t fpm__message__get_packed_size
                     (const Fpm__Message *message)
{
  assert(message->base.descriptor == &fpm__message__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t fpm__message__pack
                     (const Fpm__Message *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &fpm__message__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t fpm__message__pack_to_buffer
                     (const Fpm__Message *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &fpm__message__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Fpm__Message *
       fpm__message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Fpm__Message *)
     protobuf_c_message_unpack (&fpm__message__descriptor,
                                allocator, len, data);
}
void   fpm__message__free_unpacked
                     (Fpm__Message *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &fpm__message__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor fpm__nexthop__field_descriptors[2] =
{
  {
    "if_id",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__Nexthop, if_id),
    &qpb__if_identifier__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "address",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__Nexthop, address),
    &qpb__l3_address__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__nexthop__field_indices_by_name[] = {
  1,   /* field[1] = address */
  0,   /* field[0] = if_id */
};
static const ProtobufCIntRange fpm__nexthop__number_ranges[1 + 1] =
{
  { 2, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor fpm__nexthop__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.Nexthop",
  "Nexthop",
  "Fpm__Nexthop",
  "fpm",
  sizeof(Fpm__Nexthop),
  2,
  fpm__nexthop__field_descriptors,
  fpm__nexthop__field_indices_by_name,
  1,  fpm__nexthop__number_ranges,
  (ProtobufCMessageInit) fpm__nexthop__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__route_key__field_descriptors[1] =
{
  {
    "prefix",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__RouteKey, prefix),
    &qpb__l3_prefix__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__route_key__field_indices_by_name[] = {
  0,   /* field[0] = prefix */
};
static const ProtobufCIntRange fpm__route_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__route_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.RouteKey",
  "RouteKey",
  "Fpm__RouteKey",
  "fpm",
  sizeof(Fpm__RouteKey),
  1,
  fpm__route_key__field_descriptors,
  fpm__route_key__field_indices_by_name,
  1,  fpm__route_key__number_ranges,
  (ProtobufCMessageInit) fpm__route_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__delete_route__field_descriptors[4] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__DeleteRoute, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "address_family",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Fpm__DeleteRoute, address_family),
    &qpb__address_family__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sub_address_family",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Fpm__DeleteRoute, sub_address_family),
    &qpb__sub_address_family__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "key",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__DeleteRoute, key),
    &fpm__route_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__delete_route__field_indices_by_name[] = {
  1,   /* field[1] = address_family */
  3,   /* field[3] = key */
  2,   /* field[2] = sub_address_family */
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__delete_route__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor fpm__delete_route__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.DeleteRoute",
  "DeleteRoute",
  "Fpm__DeleteRoute",
  "fpm",
  sizeof(Fpm__DeleteRoute),
  4,
  fpm__delete_route__field_descriptors,
  fpm__delete_route__field_indices_by_name,
  1,  fpm__delete_route__number_ranges,
  (ProtobufCMessageInit) fpm__delete_route__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__add_route__field_descriptors[10] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "address_family",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, address_family),
    &qpb__address_family__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sub_address_family",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, sub_address_family),
    &qpb__sub_address_family__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "key",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, key),
    &fpm__route_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "route_type",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Fpm__AddRoute, has_route_type),
    offsetof(Fpm__AddRoute, route_type),
    &fpm__route_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "protocol",
    6,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, protocol),
    &qpb__protocol__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "metric",
    8,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, metric),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "nexthops",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__AddRoute, n_nexthops),
    offsetof(Fpm__AddRoute, nexthops),
    &fpm__nexthop__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "srv6_encap_source_address",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, srv6_encap_source_address),
    &qpb__ipv6_address__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "srv6_vpn_sid",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__AddRoute, srv6_vpn_sid),
    &qpb__ipv6_address__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__add_route__field_indices_by_name[] = {
  1,   /* field[1] = address_family */
  3,   /* field[3] = key */
  6,   /* field[6] = metric */
  7,   /* field[7] = nexthops */
  5,   /* field[5] = protocol */
  4,   /* field[4] = route_type */
  8,   /* field[8] = srv6_encap_source_address */
  9,   /* field[9] = srv6_vpn_sid */
  2,   /* field[2] = sub_address_family */
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__add_route__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 8, 6 },
  { 0, 10 }
};
const ProtobufCMessageDescriptor fpm__add_route__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.AddRoute",
  "AddRoute",
  "Fpm__AddRoute",
  "fpm",
  sizeof(Fpm__AddRoute),
  10,
  fpm__add_route__field_descriptors,
  fpm__add_route__field_indices_by_name,
  2,  fpm__add_route__number_ranges,
  (ProtobufCMessageInit) fpm__add_route__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_sidformat__field_descriptors[4] =
{
  {
    "locator_block_length",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6SIDFormat, locator_block_length),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "locator_node_length",
    2,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6SIDFormat, locator_node_length),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "function_length",
    3,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6SIDFormat, function_length),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "argument_length",
    4,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6SIDFormat, argument_length),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_sidformat__field_indices_by_name[] = {
  3,   /* field[3] = argument_length */
  2,   /* field[2] = function_length */
  0,   /* field[0] = locator_block_length */
  1,   /* field[1] = locator_node_length */
};
static const ProtobufCIntRange fpm__srv6_sidformat__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor fpm__srv6_sidformat__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6SIDFormat",
  "SRv6SIDFormat",
  "Fpm__SRv6SIDFormat",
  "fpm",
  sizeof(Fpm__SRv6SIDFormat),
  4,
  fpm__srv6_sidformat__field_descriptors,
  fpm__srv6_sidformat__field_indices_by_name,
  1,  fpm__srv6_sidformat__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_sidformat__init,
  NULL,NULL,NULL    /* reserved[123] */
};
#define fpm__srv6_local_sid__end__field_descriptors NULL
#define fpm__srv6_local_sid__end__field_indices_by_name NULL
#define fpm__srv6_local_sid__end__number_ranges NULL
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.End",
  "End",
  "Fpm__SRv6LocalSID__End",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__End),
  0,
  fpm__srv6_local_sid__end__field_descriptors,
  fpm__srv6_local_sid__end__field_indices_by_name,
  0,  fpm__srv6_local_sid__end__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_x__field_descriptors[1] =
{
  {
    "nexthop",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndX, nexthop),
    &fpm__nexthop__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_x__field_indices_by_name[] = {
  0,   /* field[0] = nexthop */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_x__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_x__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndX",
  "EndX",
  "Fpm__SRv6LocalSID__EndX",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndX),
  1,
  fpm__srv6_local_sid__end_x__field_descriptors,
  fpm__srv6_local_sid__end_x__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_x__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_x__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_t__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndT, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_t__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_t__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_t__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndT",
  "EndT",
  "Fpm__SRv6LocalSID__EndT",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndT),
  1,
  fpm__srv6_local_sid__end_t__field_descriptors,
  fpm__srv6_local_sid__end_t__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_t__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_t__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_dx6__field_descriptors[1] =
{
  {
    "nexthop",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndDX6, nexthop),
    &fpm__nexthop__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_dx6__field_indices_by_name[] = {
  0,   /* field[0] = nexthop */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_dx6__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_dx6__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndDX6",
  "EndDX6",
  "Fpm__SRv6LocalSID__EndDX6",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndDX6),
  1,
  fpm__srv6_local_sid__end_dx6__field_descriptors,
  fpm__srv6_local_sid__end_dx6__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_dx6__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_dx6__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_dx4__field_descriptors[1] =
{
  {
    "nexthop",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndDX4, nexthop),
    &fpm__nexthop__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_dx4__field_indices_by_name[] = {
  0,   /* field[0] = nexthop */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_dx4__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_dx4__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndDX4",
  "EndDX4",
  "Fpm__SRv6LocalSID__EndDX4",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndDX4),
  1,
  fpm__srv6_local_sid__end_dx4__field_descriptors,
  fpm__srv6_local_sid__end_dx4__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_dx4__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_dx4__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_dt6__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndDT6, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_dt6__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_dt6__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_dt6__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndDT6",
  "EndDT6",
  "Fpm__SRv6LocalSID__EndDT6",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndDT6),
  1,
  fpm__srv6_local_sid__end_dt6__field_descriptors,
  fpm__srv6_local_sid__end_dt6__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_dt6__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_dt6__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_dt4__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndDT4, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_dt4__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_dt4__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_dt4__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndDT4",
  "EndDT4",
  "Fpm__SRv6LocalSID__EndDT4",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndDT4),
  1,
  fpm__srv6_local_sid__end_dt4__field_descriptors,
  fpm__srv6_local_sid__end_dt4__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_dt4__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_dt4__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__end_dt46__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__EndDT46, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__end_dt46__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__end_dt46__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__end_dt46__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.EndDT46",
  "EndDT46",
  "Fpm__SRv6LocalSID__EndDT46",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__EndDT46),
  1,
  fpm__srv6_local_sid__end_dt46__field_descriptors,
  fpm__srv6_local_sid__end_dt46__field_indices_by_name,
  1,  fpm__srv6_local_sid__end_dt46__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__end_dt46__init,
  NULL,NULL,NULL    /* reserved[123] */
};
#define fpm__srv6_local_sid__un__field_descriptors NULL
#define fpm__srv6_local_sid__un__field_indices_by_name NULL
#define fpm__srv6_local_sid__un__number_ranges NULL
const ProtobufCMessageDescriptor fpm__srv6_local_sid__un__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.UN",
  "UN",
  "Fpm__SRv6LocalSID__UN",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__UN),
  0,
  fpm__srv6_local_sid__un__field_descriptors,
  fpm__srv6_local_sid__un__field_indices_by_name,
  0,  fpm__srv6_local_sid__un__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__un__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__ua__field_descriptors[1] =
{
  {
    "nexthop",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__UA, nexthop),
    &fpm__nexthop__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__ua__field_indices_by_name[] = {
  0,   /* field[0] = nexthop */
};
static const ProtobufCIntRange fpm__srv6_local_sid__ua__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__ua__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.UA",
  "UA",
  "Fpm__SRv6LocalSID__UA",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__UA),
  1,
  fpm__srv6_local_sid__ua__field_descriptors,
  fpm__srv6_local_sid__ua__field_indices_by_name,
  1,  fpm__srv6_local_sid__ua__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__ua__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__udt6__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__UDT6, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__udt6__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__udt6__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__udt6__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.UDT6",
  "UDT6",
  "Fpm__SRv6LocalSID__UDT6",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__UDT6),
  1,
  fpm__srv6_local_sid__udt6__field_descriptors,
  fpm__srv6_local_sid__udt6__field_indices_by_name,
  1,  fpm__srv6_local_sid__udt6__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__udt6__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__udt4__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__UDT4, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__udt4__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__udt4__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__udt4__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.UDT4",
  "UDT4",
  "Fpm__SRv6LocalSID__UDT4",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__UDT4),
  1,
  fpm__srv6_local_sid__udt4__field_descriptors,
  fpm__srv6_local_sid__udt4__field_indices_by_name,
  1,  fpm__srv6_local_sid__udt4__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__udt4__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__udt46__field_descriptors[1] =
{
  {
    "vrf_id",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_UINT32,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID__UDT46, vrf_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__udt46__field_indices_by_name[] = {
  0,   /* field[0] = vrf_id */
};
static const ProtobufCIntRange fpm__srv6_local_sid__udt46__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__udt46__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID.UDT46",
  "UDT46",
  "Fpm__SRv6LocalSID__UDT46",
  "fpm",
  sizeof(Fpm__SRv6LocalSID__UDT46),
  1,
  fpm__srv6_local_sid__udt46__field_descriptors,
  fpm__srv6_local_sid__udt46__field_indices_by_name,
  1,  fpm__srv6_local_sid__udt46__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__udt46__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor fpm__srv6_local_sid__field_descriptors[15] =
{
  {
    "sid",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID, sid),
    &qpb__ipv6_address__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sid_format",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__SRv6LocalSID, sid_format),
    &fpm__srv6_sidformat__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end),
    &fpm__srv6_local_sid__end__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_x",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_x),
    &fpm__srv6_local_sid__end_x__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_t",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_t),
    &fpm__srv6_local_sid__end_t__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_dx6",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_dx6),
    &fpm__srv6_local_sid__end_dx6__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_dx4",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_dx4),
    &fpm__srv6_local_sid__end_dx4__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_dt6",
    9,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_dt6),
    &fpm__srv6_local_sid__end_dt6__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_dt4",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_dt4),
    &fpm__srv6_local_sid__end_dt4__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_dt46",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, end_dt46),
    &fpm__srv6_local_sid__end_dt46__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "un",
    12,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, un),
    &fpm__srv6_local_sid__un__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "ua",
    13,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, ua),
    &fpm__srv6_local_sid__ua__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "udt6",
    14,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, udt6),
    &fpm__srv6_local_sid__udt6__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "udt4",
    15,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, udt4),
    &fpm__srv6_local_sid__udt4__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "udt46",
    16,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Fpm__SRv6LocalSID, end_behavior_case),
    offsetof(Fpm__SRv6LocalSID, udt46),
    &fpm__srv6_local_sid__udt46__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__srv6_local_sid__field_indices_by_name[] = {
  2,   /* field[2] = end */
  8,   /* field[8] = end_dt4 */
  9,   /* field[9] = end_dt46 */
  7,   /* field[7] = end_dt6 */
  6,   /* field[6] = end_dx4 */
  5,   /* field[5] = end_dx6 */
  4,   /* field[4] = end_t */
  3,   /* field[3] = end_x */
  0,   /* field[0] = sid */
  1,   /* field[1] = sid_format */
  11,   /* field[11] = ua */
  13,   /* field[13] = udt4 */
  14,   /* field[14] = udt46 */
  12,   /* field[12] = udt6 */
  10,   /* field[10] = un */
};
static const ProtobufCIntRange fpm__srv6_local_sid__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 7, 5 },
  { 0, 15 }
};
const ProtobufCMessageDescriptor fpm__srv6_local_sid__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.SRv6LocalSID",
  "SRv6LocalSID",
  "Fpm__SRv6LocalSID",
  "fpm",
  sizeof(Fpm__SRv6LocalSID),
  15,
  fpm__srv6_local_sid__field_descriptors,
  fpm__srv6_local_sid__field_indices_by_name,
  2,  fpm__srv6_local_sid__number_ranges,
  (ProtobufCMessageInit) fpm__srv6_local_sid__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue fpm__message__type__enum_values_by_number[5] =
{
  { "UNKNOWN_MSG", "FPM__MESSAGE__TYPE__UNKNOWN_MSG", 0 },
  { "ADD_ROUTE", "FPM__MESSAGE__TYPE__ADD_ROUTE", 1 },
  { "DELETE_ROUTE", "FPM__MESSAGE__TYPE__DELETE_ROUTE", 2 },
  { "ADD_SRV6_LOCALSID", "FPM__MESSAGE__TYPE__ADD_SRV6_LOCALSID", 3 },
  { "DELETE_SRV6_LOCALSID", "FPM__MESSAGE__TYPE__DELETE_SRV6_LOCALSID", 4 },
};
static const ProtobufCIntRange fpm__message__type__value_ranges[] = {
{0, 0},{0, 5}
};
static const ProtobufCEnumValueIndex fpm__message__type__enum_values_by_name[5] =
{
  { "ADD_ROUTE", 1 },
  { "ADD_SRV6_LOCALSID", 3 },
  { "DELETE_ROUTE", 2 },
  { "DELETE_SRV6_LOCALSID", 4 },
  { "UNKNOWN_MSG", 0 },
};
const ProtobufCEnumDescriptor fpm__message__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "fpm.Message.Type",
  "Type",
  "Fpm__Message__Type",
  "fpm",
  5,
  fpm__message__type__enum_values_by_number,
  5,
  fpm__message__type__enum_values_by_name,
  1,
  fpm__message__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor fpm__message__field_descriptors[4] =
{
  {
    "type",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Fpm__Message, has_type),
    offsetof(Fpm__Message, type),
    &fpm__message__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "add_route",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__Message, add_route),
    &fpm__add_route__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "delete_route",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__Message, delete_route),
    &fpm__delete_route__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "srv6_localsid",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Fpm__Message, srv6_localsid),
    &fpm__srv6_local_sid__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned fpm__message__field_indices_by_name[] = {
  1,   /* field[1] = add_route */
  2,   /* field[2] = delete_route */
  3,   /* field[3] = srv6_localsid */
  0,   /* field[0] = type */
};
static const ProtobufCIntRange fpm__message__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor fpm__message__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "fpm.Message",
  "Message",
  "Fpm__Message",
  "fpm",
  sizeof(Fpm__Message),
  4,
  fpm__message__field_descriptors,
  fpm__message__field_indices_by_name,
  1,  fpm__message__number_ranges,
  (ProtobufCMessageInit) fpm__message__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue fpm__route_type__enum_values_by_number[4] =
{
  { "UNKNOWN", "FPM__ROUTE_TYPE__UNKNOWN", 0 },
  { "NORMAL", "FPM__ROUTE_TYPE__NORMAL", 1 },
  { "UNREACHABLE", "FPM__ROUTE_TYPE__UNREACHABLE", 2 },
  { "BLACKHOLE", "FPM__ROUTE_TYPE__BLACKHOLE", 3 },
};
static const ProtobufCIntRange fpm__route_type__value_ranges[] = {
{0, 0},{0, 4}
};
static const ProtobufCEnumValueIndex fpm__route_type__enum_values_by_name[4] =
{
  { "BLACKHOLE", 3 },
  { "NORMAL", 1 },
  { "UNKNOWN", 0 },
  { "UNREACHABLE", 2 },
};
const ProtobufCEnumDescriptor fpm__route_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "fpm.RouteType",
  "RouteType",
  "Fpm__RouteType",
  "fpm",
  4,
  fpm__route_type__enum_values_by_number,
  4,
  fpm__route_type__enum_values_by_name,
  1,
  fpm__route_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
