endpointlocation.v1

Top

arista/endpointlocation.v1/endpointlocation.proto

Device

Device holds information for a device matching a search term.

Field NameTypeDescription
identifier_listIdentifierList

identifier_list holds the unique identifiers for the device.

device_typeDeviceType

device_type is the broad category of the device.

location_listLocationList

location_list is the list of possible locations of the device.

It is ordered from most likely to least likely.

device_statusDeviceStatus

device_status is the network status of the device.

device_infoDeviceInfo

device_info holds various attributes of the device.

DeviceInfo

DeviceInfo holds various attributes of a device (typically an endpoint) from Fingerbank.

Field NameTypeDescription
device_namegoogle.protobuf.StringValue

device_name is the name of the device.

mobilegoogle.protobuf.BoolValue

mobile indicates whether the device is a mobile.

tabletgoogle.protobuf.BoolValue

tablet indicates whether the device is a tablet.

scoregoogle.protobuf.UInt32Value

score is a value from 0 to 100 that indicates how confident we are

that the device has device_name.

Fingerbank API documentation of score: https://api.fingerbank.org/api_doc/2/combinations.html

versiongoogle.protobuf.StringValue

version is the version of device_name.

mac_vendorgoogle.protobuf.StringValue

mac_vendor is the enterprise that assigns the MAC address of the device.

classificationgoogle.protobuf.StringValue

classification is the broadest category to which device_name belongs.

This is the highest level in hierarchy.

hierarchyfmp.RepeatedString

hierarchy is a list of categorizations of the device from most broad

to most specific. The first element is always classification and the

last element is always device_name.

For example,

[“VoIP Device”, “FooInc VoIP”, “FooInc PhoneSet IP”, “FooInc PhoneSet IP Model123”]

In this hierarchy, “VoIP Device” is classification and “FooInc PhoneSet IP Model123”

is device_name.

DeviceMap

DeviceMap is a collection of Device.

Field NameTypeDescription
valuesDeviceMap.ValuesEntry[…]

values is a map from most specific identifier to Device.

The key could be device serial number or MAC address.

DeviceMap.ValuesEntry

Field NameTypeDescription
keystring

valueDevice

EndpointLocation

EndpointLocation is the entrypoint to searching for endpoints.

Field NameTypeDescription
keyEndpointLocationKey

key holds a search term used to locate an endpoint.

device_mapDeviceMap

device_map holds the devices (and their potential locations)

that match the search term.

EndpointLocationKey

EndpointLocationKey holds a search term used to locate an endpoint.

Field NameTypeDescription
search_termgoogle.protobuf.StringValue

search_term is used to match against identifiers on devices.

This could be a MAC/IP address, hostname, etc.

ExplanationList

ExplanationList is a list of Explanation.

Field NameTypeDescription
valuesExplanation[…]

values is a list of unique Explanation. Currently, this will

always contain one value, but in the future it may contain

more.

Identifier

Identifier holds device identification information.

Field NameTypeDescription
typeIdentifierType

type is the identifier type corresponding to value.

valuegoogle.protobuf.StringValue

value is the string representation of the identifier. Its interpretation

depends on type.

source_listIdentifierSourceList

source_list is the set of sources where this identifier was discovered.

IdentifierList

IdentifierList is a list of Identifier.

Field NameTypeDescription
valuesIdentifier[…]

values is an unordered list of Identifier where each Identifier has a

unique type and value combination.

IdentifierSourceList

IdentifierSourceList is a list of IdentifierSource.

Field NameTypeDescription
valuesIdentifierSource[…]

values is an unordered list of unique IdentifierSource.

Location

Location is a port (device_id, interface, vlan_id) on which at least one identifier has been discovered.

Field NameTypeDescription
device_idgoogle.protobuf.StringValue

device_id identifies the device of the port.

device_statusDeviceStatus

device_status is the status of the device identified by device_id.

interfacegoogle.protobuf.StringValue

interface is the interface of the port.

vlan_idgoogle.protobuf.UInt32Value

vlan_id identifies the VLAN of the port.

learned_timegoogle.protobuf.Timestamp

learned_time is when the port learned its identifiers.

mac_typeMacType

mac_type is how the port learned its MAC address identifier.

likelihoodLikelihood

likelihood is the probability level that the port is directly connected

to the queried endpoint.

explanation_listExplanationList

explanation_list holds the reasons that the port was assigned likelihood.

identifier_listIdentifierList

identifier_list holds the discovered identifiers of the port.

LocationList

LocationList is a list of Location.

Field NameTypeDescription
valuesLocation[…]

values is a list of unique Location.

DeviceStatus

DeviceStatus is the network status of a device.

NameNumberDescription
DEVICE_STATUS_UNSPECIFIED0

DEVICE_STATUS_UNSPECIFIED is the default unspecified device status.

DEVICE_STATUS_ACTIVE1

DEVICE_STATUS_ACTIVE indicates a device is streaming its telemetry data

to CloudVision.

DEVICE_STATUS_INACTIVE2

DEVICE_STATUS_INACTIVE indicates a device is either not streaming its

telemetry data to CloudVision or has been decommissioned from CloudVision.

DeviceType

DeviceType defines a broad set of categories for all queried devices.

NameNumberDescription
DEVICE_TYPE_UNSPECIFIED0

DEVICE_TYPE_UNSPECIFIED is the default unspecified device type.

DEVICE_TYPE_INVENTORY1

DEVICE_TYPE_INVENTORY indicates a device in the CloudVision inventory.

DEVICE_TYPE_ENDPOINT2

DEVICE_TYPE_ENDPOINT indicates a non-WiFi endpoint that does not exist

in the CloudVision inventory.

DEVICE_TYPE_WIFI_ENDPOINT3

DEVICE_TYPE_WIFI_ENDPOINT indicates a WiFi client/endpoint that does not

exist in the CloudVision inventory.

Explanation

Explanation defines the set of reasons for why a location has a certain likelihood. Some explanations apply to queried endpoints while others apply to queried devices in the CloudVision device inventory.

NameNumberDescription
EXPLANATION_UNSPECIFIED0

EXPLANATION_UNSPECIFIED is the default unspecified explanation.

EXPLANATION_DIRECT_CONNECTION1

EXPLANATION_DIRECT_CONNECTION indicates a direct connection to the queried

endpoint device discovered via LLDP.

EXPLANATION_NON_INVENTORY_CONNECTION2

EXPLANATION_NON_INVENTORY_CONNECTION indicates a direct connection to at least

one non-inventory device (likely discovered via LLDP).

EXPLANATION_NO_CONNECTION3

EXPLANATION_NO_CONNECTION indicates that a location has no direct connection to

any known device.

EXPLANATION_INVENTORY_CONNECTION4

EXPLANATION_INVENTORY_CONNECTION indicates that all of a location’s known connections

are to devices in the inventory.

EXPLANATION_OWN_PORT_INVENTORY_DEVICE5

EXPLANATION_OWN_PORT_INVENTORY_DEVICE indicates a location on the queried inventory

device itself.

EXPLANATION_DIRECT_CONNECTION_INVENTORY_DEVICE6

EXPLANATION_DIRECT_CONNECTION_INVENTORY_DEVICE indicates a direct connection to the

queried inventory device discovered via LLDP.

EXPLANATION_NO_CONNECTION_INVENTORY_DEVICE7

EXPLANATION_NO_CONNECTION_INVENTORY_DEVICE indicates that a location has no direct

connection to any known device (for queried inventory devices).

EXPLANATION_OTHER_CONNECTION_INVENTORY_DEVICE8

EXPLANATION_OTHER_CONNECTION_INVENTORY_DEVICE indicates that a location only has

connections to other devices besides the queried inventory device.

EXPLANATION_VIRTUAL9

EXPLANATION_VIRTUAL indicates that a location contains a virtual interface.

EXPLANATION_WIRELESS_CONNECTION10

EXPLANATION_WIRELESS_CONNECTION indicates a direct connection from a wireless access

point in the device inventory to a wireless client.

EXPLANATION_ACCESS_PORT11

EXPLANATION_ACCESS_PORT indicates that a location is an access port.

IdentifierSource

IdentifierSource defines the set of network protocols and other information sources where an identifier was found.

NameNumberDescription
IDENTIFIER_SOURCE_UNSPECIFIED0

IDENTIFIER_SOURCE_UNSPECIFIED is the default unspecified identifier source.

IDENTIFIER_SOURCE_FDB1

IDENTIFIER_SOURCE_FDB indicates a forwarding table.

IDENTIFIER_SOURCE_ARP2

IDENTIFIER_SOURCE_ARP indicates ARP (IPv4).

IDENTIFIER_SOURCE_NEIGHBOR3

IDENTIFIER_SOURCE_NEIGHBOR indicates NDP (IPv6).

IDENTIFIER_SOURCE_DEVICE_INVENTORY4

IDENTIFIER_SOURCE_DEVICE_INVENTORY indicates that an endpoint is in the

CloudVision inventory.

IDENTIFIER_SOURCE_LLDP5

IDENTIFIER_SOURCE_LLDP indicates LLDP.

IDENTIFIER_SOURCE_DHCP6

IDENTIFIER_SOURCE_DHCP indicates DHCP.

IDENTIFIER_SOURCE_WIFI7

IDENTIFIER_SOURCE_WIFI indicates a WiFi endpoint that was learned through

a wireless manager.

IdentifierType

IdentifierType defines the set of ways for identifying endpoints.

NameNumberDescription
IDENTIFIER_TYPE_UNSPECIFIED0

IDENTIFIER_TYPE_UNSPECIFIED is the default unspecified identifier.

IDENTIFIER_TYPE_MAC_ADDR1

IDENTIFIER_TYPE_MAC_ADDR indicates a MAC address identifier.

IDENTIFIER_TYPE_IPV4_ADDR2

IDENTIFIER_TYPE_IPV4_ADDR indicates an IPv4 address identifier.

IDENTIFIER_TYPE_IPV6_ADDR3

IDENTIFIER_TYPE_IPV6_ADDR indicates an IPv6 address identifier.

IDENTIFIER_TYPE_INVENTORY_DEVICE_ID4

IDENTIFIER_TYPE_INVENTORY_DEVICE_ID indicates an inventory device identifier.

IDENTIFIER_TYPE_PRIMARY_MANAGEMENT_IP5

IDENTIFIER_TYPE_PRIMARY_MANAGEMENT_IP indicates a primary management IP identifier.

IDENTIFIER_TYPE_HOSTNAME6

IDENTIFIER_TYPE_HOSTNAME indicates a hostname identifier.

IDENTIFIER_TYPE_USERNAME7

IDENTIFIER_TYPE_USERNAME indicates a username identifier.

IDENTIFIER_TYPE_OTHER99999

IDENTIFIER_TYPE_OTHER is used for an unknown identifier.

Likelihood

Likelihood indicates a level of confidence.

NameNumberDescription
LIKELIHOOD_UNSPECIFIED0

LIKELIHOOD_UNSPECIFIED is the default unspecified likelihood.

LIKELIHOOD_VERY_LIKELY1

LIKELIHOOD_VERY_LIKELY indicates very high confidence.

LIKELIHOOD_LIKELY2

LIKELIHOOD_LIKELY indicates high confidence.

LIKELIHOOD_SOMEWHAT_LIKELY3

LIKELIHOOD_SOMEWHAT_LIKELY indicates medium confidence.

LIKELIHOOD_LESS_LIKELY4

LIKELIHOOD_LESS_LIKELY indicates low confidence.

MacType

MacType describes how the MAC address was learned on the port location.

NameNumberDescription
MAC_TYPE_UNSPECIFIED0

MAC_TYPE_UNSPECIFIED is the default unspecified MAC type.

MAC_TYPE_LEARNED_DYNAMIC1

MAC_TYPE_LEARNED_DYNAMIC indicates a MAC that is dynamically learned in hardware.

MAC_TYPE_LEARNED_SECURE2

MAC_TYPE_LEARNED_SECURE indicates a MAC that is learned in hardware on a port-security protect interface.

MAC_TYPE_CONFIGURED_DYNAMIC3

MAC_TYPE_CONFIGURED_DYNAMIC indicates a configured dynamic MAC.

MAC_TYPE_CONFIGURED_SECURE4

MAC_TYPE_CONFIGURED_SECURE indicates a MAC configured on an interface with Port Security: Protect mode enabled

MAC_TYPE_CONFIGURED_STATIC5

MAC_TYPE_CONFIGURED_STATIC indicates a statically configured MAC.

MAC_TYPE_PEER_DYNAMIC6

MAC_TYPE_PEER_DYNAMIC indicates a dynamically learned MAC discovered via an MLAG peer.

MAC_TYPE_PEER_STATIC7

MAC_TYPE_PEER_STATIC indicates a statically configured MAC discovered via an MLAG peer.

MAC_TYPE_PEER_SECURE8

MAC_TYPE_PEER_SECURE indicates a secure MAC learned from an MLAG peer.

MAC_TYPE_LEARNED_REMOTE9

MAC_TYPE_LEARNED_REMOTE indicates a MAC learned remotely behind a VxLAN VTEP.

MAC_TYPE_CONFIGURED_REMOTE10

MAC_TYPE_CONFIGURED_REMOTE indicates a MAC configured behind a VxLAN VTEP.

MAC_TYPE_RECEIVED_REMOTE11

MAC_TYPE_RECEIVED_REMOTE indicates a MAC received from a VxLAN controller.

MAC_TYPE_PEER_LEARNED_REMOTE12

MAC_TYPE_PEER_LEARNED_REMOTE indicates a remote MAC learned on a peer VTEP.

MAC_TYPE_PEER_CONFIGURED_REMOTE13

MAC_TYPE_PEER_CONFIGURED_REMOTE indicates an MLAG peer configured remote MAC.

MAC_TYPE_PEER_RECEIVED_REMOTE14

MAC_TYPE_PEER_RECEIVED_REMOTE indicates a remote MAC received from a VxLAN controller by the MLAG peer.

MAC_TYPE_EVPN_DYNAMIC_REMOTE15

MAC_TYPE_EVPN_DYNAMIC_REMOTE indicates an EVPN dynamic remote MAC.

MAC_TYPE_EVPN_CONFIGURED_REMOTE16

MAC_TYPE_EVPN_CONFIGURED_REMOTE indicates an EVPN configured remote MAC.

MAC_TYPE_PEER_EVPN_REMOTE17

MAC_TYPE_PEER_EVPN_REMOTE indicates an MLAG peer EVPN remote MAC.

MAC_TYPE_CONFIGURED_ROUTER18

MAC_TYPE_CONFIGURED_ROUTER indicates a configured MAC used in routing.

MAC_TYPE_PEER_ROUTER19

MAC_TYPE_PEER_ROUTER indicates an MLAG peer specific router MAC.

MAC_TYPE_EVPN_INTF_DYNAMIC20

MAC_TYPE_EVPN_INTF_DYNAMIC indicates a MAC advertised by EVPN when a dynamic MAC is learned on ESI (Ethernet Segment Identifier).

MAC_TYPE_EVPN_INTF_STATIC21

MAC_TYPE_EVPN_INTF_STATIC indicates a MAC configured on EVPN ESI.

MAC_TYPE_AUTHENTICATED22

MAC_TYPE_AUTHENTICATED indicates a MAC authenticated via 802.1X.

MAC_TYPE_PEER_AUTHENTICATED23

MAC_TYPE_PEER_AUTHENTICATED indicates a MAC authenticated by 802.1X and learned on an MLAG peer.

MAC_TYPE_PENDING_SECURE24

MAC_TYPE_PENDING_SECURE indicates a secure MAC in a pending state.

MAC_TYPE_SOFTWARE_LEARNED_DYNAMIC25

MAC_TYPE_SOFTWARE_LEARNED_DYNAMIC indicates a MAC learned behind VTEP in software in the case of a VxLAN remote MAC.

MAC_TYPE_OTHER99999

MAC_TYPE_OTHER is used for capturing future MAC types.

Top

arista/endpointlocation.v1/services.gen.proto

EndpointLocationRequest

Field NameTypeDescription
keyEndpointLocationKey

Key uniquely identifies a EndpointLocation instance to retrieve.

This value must be populated.

timegoogle.protobuf.Timestamp

Time indicates the time for which you are interested in the data.

If no time is given, the server will use the time at which it makes the request.

EndpointLocationResponse

Field NameTypeDescription
valueEndpointLocation

Value is the value requested.

This structure will be fully-populated as it exists in the datastore. If

optional fields were not given at creation, these fields will be empty or

set to default values.

timegoogle.protobuf.Timestamp

Time carries the (UTC) timestamp of the last-modification of the

EndpointLocation instance in this response.

EndpointLocationSomeRequest

Field NameTypeDescription
keysEndpointLocationKey[…]

timegoogle.protobuf.Timestamp

Time indicates the time for which you are interested in the data.

If no time is given, the server will use the time at which it makes the request.

EndpointLocationSomeResponse

Field NameTypeDescription
valueEndpointLocation

Value is the value requested.

This structure will be fully-populated as it exists in the datastore. If

optional fields were not given at creation, these fields will be empty or

set to default values.

errorgoogle.protobuf.StringValue

Error is an optional field.

It should be filled when there is an error in the GetSome process.

timegoogle.protobuf.Timestamp

EndpointLocationStreamRequest

Field NameTypeDescription
partial_eq_filterEndpointLocation[…]

PartialEqFilter provides a way to server-side filter a GetAll/Subscribe.

This requires all provided fields to be equal to the response.

While transparent to users, this field also allows services to optimize internal

subscriptions if filter(s) are sufficiently specific.

timearista.time.TimeBounds

TimeRange allows limiting response data to within a specified time window.

If this field is populated, at least one of the two time fields are required.

For GetAll, the fields start and end can be used as follows:

* end: Returns the state of each EndpointLocation at end.

* Each EndpointLocation response is fully-specified (all fields set).

* start: Returns the state of each EndpointLocation at start, followed by updates until now.

* Each EndpointLocation response at start is fully-specified, but updates may be partial.

* start and end: Returns the state of each EndpointLocation at start, followed by updates

until end.

* Each EndpointLocation response at start is fully-specified, but updates until end may

be partial.

This field is not allowed in the Subscribe RPC.

EndpointLocationStreamResponse

Field NameTypeDescription
valueEndpointLocation

Value is a value deemed relevant to the initiating request.

This structure will always have its key-field populated. Which other fields are

populated, and why, depends on the value of Operation and what triggered this notification.

timegoogle.protobuf.Timestamp

Time holds the timestamp of this EndpointLocation’s last modification.

typearista.subscriptions.Operation

Operation indicates how the EndpointLocation value in this response should be considered.

Under non-subscribe requests, this value should always be INITIAL. In a subscription,

once all initial data is streamed and the client begins to receive modification updates,

you should not see INITIAL again.

MetaResponse

Field NameTypeDescription
timegoogle.protobuf.Timestamp

Time holds the timestamp of the last item included in the metadata calculation.

typearista.subscriptions.Operation

Operation indicates how the value in this response should be considered.

Under non-subscribe requests, this value should always be INITIAL. In a subscription,

once all initial data is streamed and the client begins to receive modification updates,

you should not see INITIAL again.

countgoogle.protobuf.UInt32Value

Count is the number of items present under the conditions of the request.

EndpointLocationService

Method NameRequest TypeResponse TypeDescription
GetOneEndpointLocationRequestEndpointLocationResponse

GetSomeEndpointLocationSomeRequestEndpointLocationSomeResponse stream

GetAllEndpointLocationStreamRequestEndpointLocationStreamResponse stream

SubscribeEndpointLocationStreamRequestEndpointLocationStreamResponse stream

GetMetaEndpointLocationStreamRequestMetaResponse

SubscribeMetaEndpointLocationStreamRequestMetaResponse stream