idnits 2.17.1 draft-ietf-lisp-nexagon-15.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 7, 2021) is 956 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: A later version (-38) exists of draft-ietf-lisp-rfc6830bis-36 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 LISP Working Group S. Barkai 2 Internet-Draft B. Fernandez-Ruiz 3 Intended status: Informational S. ZionB 4 Expires: January 1, 2022 R. Tamir 5 Nexar Inc. 6 A. Rodriguez-Natal 7 F. Maino 8 Cisco Systems 9 A. Cabellos-Aparicio 10 J. Paillisse Vilanova 11 Technical University of Catalonia 12 D. Farinacci 13 lispers.net 14 September 7, 2021 16 Network-Hexagons: H3-LISP GeoState & Mobility Network 17 draft-ietf-lisp-nexagon-15 19 Abstract 21 This document specifies the use of H3 and LISP for Geolocation 22 services, utilizing geospatial data to mobility use-cases: 23 fresh HDMaps, Intelligent Driving, Cruise and Parking assists. 24 This is achieved by: 25 - EID addressable geospatial abstraction of road-segments. 26 - EID Interface for detections and Uploads, a geospatial-context. 27 - EID Routing-Sharing hazards, blockages, parking, road-inventory. 28 - Compute-First brokerage of geospatial production <> consumption. 29 - Predefined EID geospatial mcast channels to subscribed clients. 31 Status of This Memo 33 This Internet-Draft is submitted in full conformance with the 34 provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF). Note that other groups may also distribute 38 working documents as Internet-Drafts. The list of current Internet- 39 Drafts is at https://datatracker.ietf.org/drafts/current/. 41 Internet-Drafts are draft documents valid for a maximum of six months 42 and may be updated, replaced, or obsoleted by other documents at any 43 time. It is inappropriate to use Internet-Drafts as reference 44 material or to cite them other than as "work in progress." 46 This Internet-Draft will expire on January 1, 2022. 48 Copyright Notice 50 Copyright (c) 2021 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents 55 (https://trustee.ietf.org/license-info) in effect on the date of 56 publication of this document. Please review these documents 57 carefully, as they describe your rights and restrictions with respect 58 to this document. Code Components extracted from this document must 59 include Simplified BSD License text as described in Section 4.e of 60 the Trust Legal Provisions and are provided without warranty as 61 described in the Simplified BSD License. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 66 2. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 3 67 3. Deployment Assumptions . . . . . . . . . . . . . . . . . . . 4 68 4. Mobility Clients Network Services . . . . . . . . . . . . . . 4 69 5. Mobility Unicast-Multicast . . . . . . . . . . . . . . . . . 5 70 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 71 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 72 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 73 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 76 1. Introduction 78 The Locator/ID Separation Protocol (LISP) [I-D.ietf-lisp-rfc6830bis] 79 splits IP addresses in two different namespaces, Endpoint Identifiers 80 (EIDs) and Routing Locators (RLOCs). LISP uses map-and-encap approach 81 (1) a Mapping System (distributed database) that stores and resolves 82 EID-RLOC mappings and on (2) LISP tunnel routers (xTRs) encapsulating 83 and decapsulating data packets based on content of those mappings. 85 H3 (https://h3geo.org)is a geospatial indexing system using hexagonal 86 grid that can be subdivided into finer and finer hexagonal grids, 87 combining the benefits of a hexagonal grid with hierarchy. 88 H3 supports sixteen resolutions. Each finer resolution has cells with 89 1/7 the area of the coarser resolution. Hexagons cannot be perfectly 90 subdivided into seven hexagons, so the finer cells are approximately 91 contained within a parent cell. Each cell is identified by 64bit HID. 93 The Berkeley Deep Drive (BDD) (https://bdd-data.berkeley.edu) Industry 94 Consortium investigates computer vision technologies for automotive 95 applications and for taxonomy of published automotive classification. 97 These standards are combined to create an in-network state reflecting 98 condition of each hexagonal tile (~1sqm) in every road. The mobility 99 H3-LISP network maps & encapsulates traffic between client endpoint 100 identifiers (EID) and addressable geospatial contexts (H3-HID=>EID). 102 The H3-LISP mobility network bridges timing and location gaps between 103 production and consumption of information by clients of mobility data: 104 o information producers: vision, sensory, LIADR, AI applications 105 o information consumers: driving-apps, map-apps, command & control 107 This is achieved by putting the physical world on a shared addressable 108 geospatial context-grid of road-segments represented at the edge. 109 Geospatial state sharing is done using this brokered-network of tile 110 representation, an indirection which solves key issues in v2v 111 information sharing. For example multiple vision perspectives, geo 112 privacy, cyber security. These challenges arise when clients are 113 asked to communicate directly when they do not really need to. 114 A communication pattern which causes complexity and exposures. 116 In non brokered v2v models, for a situation observable by some end 117 points, it is unclear if the need-to-know end-points will receive: 118 i. consistent, ii. conflicting, iii. multiple, or iv. no indications. 119 As an example, when a vehicle experiences a sudden highway slow-down, 120 sees brake lights or senses an accelerometer slowdown, there is no 121 clear way for it to share this data with vehicles 20-30sec away. 122 Or, when a vehicle crosses an intersection, observing opposite-lane 123 obstruction such as: construction, double-park, commercial loading, 124 garbage truck, or stopped school-bus.. there is no clear way for it 125 to alert approachers from another direction as it drives away. 127 Geospatial context indirection helps communicate advanced vision and 128 radar annotations. As these are evolving technologies, relaying road 129 enumerations using peer-to-peer poses interoperability challenges. 131 These peer-to-peer limitations are inherent yet unnecessary, in most 132 situations vehicles are not really proper peers. They happen to be in 133 the same place at the same time. H3-LISP mobility network solves these 134 limitations of direct vehicle-to-vehicle communication by brokering 135 exchanges using addressable geospatial context. Bridging timing, 136 security, privacy, and interoperability gaps between endpoints. 137 Brokering is achieved by clients communicating via context, 138 addressable tiles which aggregated and relay data using H3 EIDs. 140 Clients can provide drivers with heads-up alerts on hazards/obstacles 141 beyond the line of sight of driver and in-car sensors: over traffic, 142 around blocks, far-side junction, beyond road turns or curvatures. 143 This highlights the importance of networks for road safety 144 and role in Autonomous Vehicle (AV) operation support (AV-OSS). 146 To summarize the H3-LISP mobility use-case solution principles are: 148 (1) MicroPartition: 64bit indexed geo-state per H3.r15 road-tiles 149 (2) EnumState: 64bit state values of tile condition representation 150 (3) Grouping: EID per H3.r9 geo-context for its H3.r15 road-tiles 151 (4) Channels: H3.r9 EIDs multicast address for geo-state updates 152 (5) Scale: EID addressable contexts distributed for throughput 153 (6) Overlay: tunneled-network routes the mobility-network traffic 154 (7) Signal-free: overlay is used to map-register for mcast channels 155 (8) Layering: overlay tunnels used between client EIDs and H3 EIDs 156 (9) Access: client/server XTRs tunnel traffic to-from the LISP RTRs 157 (10) Control: RTRs register-resolve H3 EIDs and mcast subscriptions 158 |-0-|-1-|-2-|-3-|-4-|-5-|-6-|-7-|-8-|-9-|-A-|-B-|-C-|-D-|-E-|-F-| 159 | H3 Hexagon ID Key | 160 |-0-|-1-|-2-|-3-|-4-|-5-|-6-|-7-|-8-|-9-|-A-|-B-|-C-|-D-|-E-|-F-| 161 | H3 Hexagon State-Value | 162 |---------------------------------------------------------------| 164 Figure 1: 64 bit H3 ID, 64 bit compiled state value 166 Each H3.r9 hexagon is an EID context with corresponding H3 hexagon ID. 167 Bound to that context is a LISP xTR specified to encapsulate packets 168 to and from EID context and LISP Edge. Edge RTRs are used to re 169 -tunnel packets from clients to services. Each service is also a 170 multicast source for updating clients on the state of the H3.r15 171 tiles, aggregated by the EID addressable geospatial context. 173 2. Definition of Terms 175 H3ServiceEID: Is an addressable aggregation of H3.r15 tiles. 176 It functions as geospatial data association context for filtering, 177 verifying, localizing, and propagating vehicles data uploads. 178 It is a designated destination for physical world annotations, 179 and an (s,g) source of multicast themed update channels. 180 H3ServiceEID is itself an H3 hexagon, large enough to provide 181 geo-spatial compute context, but not too large as to over-burden 182 subscribers with too much information. For Mobility Network it is 183 H3.r9. It has a light-weight LISP protocol stack to tunnel packets 184 aka ServerXTR. The EID is an IPv6 EID that contains the H3 64-bit 185 address numbering scheme. 187 ServerXTR: Is a data-plane only LISP protocol stack implementation, it 188 co-exists with H3ServiceEID process. When the server roams, the xTR 189 is with it. ServerXTR encaps & decaps packets to/from EdgeRTRs. 191 MobilityClient: Is a roaming application that may be a part of an 192 automobile, part of a navigation application, part of municipal, 193 state or federal government command and control application, or a 194 street view consumer application. It has a light-weight LISP 195 data-plane stack to tunnel packets, aka ClientXTR. 197 MobilityClient EID: Is the IPv6 EID used by the Mobility Clients 198 to source packets. The destination of such packets are only 199 H3ServiceEIDs. The EID format is opaque and is assigned as 200 part of the MobilityClient mobility-network authorization. 202 ClientXTR: Is a data-plane only LISP protocol stack implementation 203 co-located with the Mobility Client application. It encaps/ 204 decaps packets from/to applications to/from EdgeRTRs. 206 EdgeRTR: Is the core scale and structure of the LISP mobility network. 207 EdgeRTRs proxy H3ServiceEIDs and MobilityClient H3ServiceEID mcast 208 registration. EdgeRTRs aggregate MobilityClients/H3Services using 209 tunnels to facilitate hosting-providers and mobile-providers for 210 accessing the mobility network. EdgeRTRs decapsulate packets 211 from ClientXTRs, ServerXTRs and re-encaps packets to the clients 212 and servers tunnels. EdgeRTRs glean H3ServiceEIDs/MobilityClient 213 EIDs when they decapsulates packets. EdgeRTRs store H3ServiceEIDs 214 and RLOCs of where the H3ServiceEID is currently reachable from 215 the map-cache. These mappings are registered to the LISP mapping 216 so other EdgeRTRs know where to encapsulate for such EIDs. These 217 mappings may be provisioned by dev-ops when H3Services are 218 assigned EdgeRTRs. EdgeRTRs do not register MobilityClients' EIDs 219 at the mapping as these are temporary-renewed while using the 220 mobility network. Enterprises may provide their own EdgeRTRs to 221 protect geo-privacy. 223 ___ ___ 224 H3ServiceEIDs ___ / \ H3ServiceEIDs ___ / \ 225 ___ / | H3.r9 | ___ / | H3.r9 | 226 / | H3.r9 \ ___ / / | H3.r9 \ ___ / 227 | H3.r9 \ ___ / sXTR | H3.r9 \ ___ / sXTR 228 \ ___ / sXTR | \ ___ / sXTR | 229 sXTR | | sXTR | | 230 | | | | | | 231 | | | | | | 232 + - - + - - EdgeRTR EdgeRTR - + - + - - + 233 || ( ( (( || 234 ( ) 235 ( Network Hexagons ) 236 ( H3-LISP ) 237 ( Mobility Network ) 238 (( ) 239 || (( (()) () || 240 || || 241 = = = = = = = = = = = = = = 242 || || 243 EdgeRTR EdgeRTR 244 .. .. .. .. 245 .. .. .. .. 246 ((((|)))) ((((|)))) ((((|)))) ((((|)))) 247 /|\ RAN /|\ /|\ RAN /|\ 248 .. .. 249 .. .. 250 .. Road tiled by 1 sqm H3.r15 ID-Ed Geo-States .. 251 .. .. 252 .. ___ ___ ___ .. 253 .. ............. / \/ \/ \ << cXTR::MobilityClientB 254 .. - - - - - - - H3.r15 H3.r15 H3.r15 - - - - - - - - - - - - 255 MobilityClientA::cXTR >> \ ___ /\ ___ / ....................... 257 Figure 2: H3.r15 state representation, H3.r9 state aggregation 259 Figure 2 above describes the following entities: 260 - MobilityClientA sees MobilityClientB future, and, vice versa 261 - Clients: share information using addressable state routed by LISP 262 - ClientXTR (cXTR): encapsulates over access network to EdgeRTR 263 - ServerXTR (sXTR): encapsulates over cloud network to EdgeRTR 264 - H3-LISP Mobility: overlay which spans cXTRs to sXTRs 265 - Uploads: routed to appropriate tile by the LISP network 266 - EdgeRTRs: perform multicast replication to edges and then cXTRs 267 - Clients: receive tile-by-tile geo-state updates via the multicast 269 3. Deployment Assumptions 271 The specification described in this document makes the following 272 deployment assumptions: 274 (1) Unique 64-bit HID is associated with each H3 geo-spatial tile 275 (2) MobilityClients and H3ServiceEIDs share this well known index 276 (3) 64-bit BDD state value is associated with each H3-indexed tile 277 (4) Tile state is compiled 16 fields of 4-bits, or max 16 enums 279 |---------------------------------------------------------------| 280 |-0-|-1-|-2-|-3-|-4-|-5-|-6-|-7-|-8-|-9-|-A-|-B-|-C-|-D-|-E-|-F-| 281 |0123012301230123012301230123012301230123012301230123012301230123 282 |---------------------------------------------------------------| 284 Figure 3: Nibble based representation, 16 fields x 16 enumerations 286 We name the nibbles using hexadecimal index according to the 287 position where the most significant nibble has index 0. 288 Values are defined in section 9. 290 Subscription of MobilityClients to mobility-network is renewed 291 while on the move and is not intended as the basic connectivity. 292 MobilityClients use DNS/AAA to obtain temporary EIDs/EdgeRTRs 293 and use (LISP) data-plane tunnels to communicate using their 294 temporary EIDs with the dynamically assigned EdgeRTRs. 296 MobilityClient are otherwise unaware of the LISP network control 297 plane and simply regard the data-plane tunnels as a virtual 298 private network (VPN) that supports IPv6 EID to upload (Ucast) 299 and Subscribe-to (Mcast) H3Services. 301 In order to get access to the MobilityVPN, MobilityClients first 302 authenticate with the MobilityVPN AAA Server. DIAMETER [RFC6733] 303 based AAA is typically done at the provider edge (PE) by gateways. 304 However, the typical case involves several types of CPE connected 305 to a specific service provider. The Mobility VPN, on the other hand, 306 may overlay a number of wireless networks and cloud-edge providers. 307 It also involves dozens of Car-OEM, Driving-Applications, Smart- 308 City vendors. This is why we require clients to first go through 309 AAA in order to get both a MobilityClientEID and EdgeRTR RLOC. 311 ClientXTR performs the following steps to use the mobility network: 312 1) obtain the address of the mobility network AAA server using DNS 313 2) obtain MobilityClientEID and EdgeRTR(s) from AAA DIAMETER server 314 3) renew authorization from AAA while using the mobility network 315 MobilityClient DomainNameServer DIAMETER-AAA MobilityEdgeRTR 316 | | | | 317 | nslookup nexagon | | | 318 |------------------->| | | 319 |<-------------------| | | 320 | Mobility AAA IP | | | 321 | | | | 322 | AAR(AVP:IMSI/User/Password/Toyota) | | 323 |--------------------------------------->| | 324 | | | ACR(AVP ClientEID)| 325 | | |------------------>| 326 | | |<------------------| 327 | | | ACA(AVP ClientEID)| 328 | AAA (Client::EID,EdgeRTR::RLOC) | | 329 |<---------------------------------------| | 330 | | | | 331 . . 332 . . 333 . Activity: . 334 | Upload to IPv6 H3ServiceEID, Subscribe MLDv2 H3ServiceEID | 335 |----------------------------------------------------------->| 336 . . 337 . . 338 |<-----------------------------------------------------------| 339 | Signal freeing multicast Updates from H3ServiceEIDs | 340 . . 341 . . 342 . . 343 | | | | 344 | AAR(Interim) | | 345 |--------------------------------------->| ACR (Interim) | 346 | | |------------------>| 347 | | |<------------------| 348 | | | ACA (Interim) | 349 |<---------------------------------------| | 350 | AAA (Interim) | | 352 Figure 4: DNS and AAA Exchange for nexagon-network login 354 Using this network login and re-login method we ensure that: 355 - MobilityClientEIDs serve as credentials with the EdgeRTRs 356 - EdgeRTRs are provisioned to whitelist MobilityClient EIDs 357 - EdgeRTRs are not tightly coupled to H3.r9 areas (privacy/balance) 358 - MobilityClients do not need to update EdgeRTRs while roaming 360 The same EdgeRTR may serve several H3.r9 areas for ride continuity 361 and several EdgeRTRs may load balance an H3.r9 area with high 362 density of MobilityClients. When a MobilityClient ClientXTR is 363 homed to EdgeRTR, it is able to communicate with H3ServiceEIDs. 365 4. Mobility Clients Network Services 367 The mobility network functions as a standard LISP overlay. 368 The overlay delivers unicast and multicast packets across: 369 - multiple access-networks and radio-access specifications 370 - multiple edge providers, public, private, and hybrid clouds 372 We use data-plane XTRs in the stack of each mobility client/server. 373 ClientXTRs and ServerXTRs are homed to one or more EdgeRTRs. 374 This structure allows for MobilityClients to "show up" at any time, 375 behind any network provider in a given mobility network admin/NAT 376 domain, and for any H3ServiceEID to be instantiated, moved, or 377 failed-over to any rack in any cloud-provider. LISP overlay enables 378 these roaming mobility network elements to communicate uninterrupted. 379 This quality is insured by the LISP RFCs. The determination of 380 identities for MobilityClients to always refer to the correct 381 H3ServiceEID is insured by H3 geo-spatial HIDs. 383 There are two options to associate ClientXTRs with LISP EdgeRTRs: 385 i. Semi-random load-balancing by DNS/AAA 387 In this option we assume that in a given metro edge a pool of 388 EdgeRTRs can distribute the Mobility Clients load randomly between 389 them and that EdgeRTRs are topologically equivalent. Each RTR uses 390 LISP to tunnel traffic to and from other EdgeRTRs for MobilityClient 391 with H3Service exchanges. MobilityClients home to EdgeRTRs. 393 ii. Topological by anycast 395 In this option we align an EdgeRTR with topological aggregation. 396 Mobility Clients are roaming in an area home to that RTR and so 397 is the H3 Server. There is only one hop across the edge overlay 398 between clients and servers and mcast replication is more 399 focused, but clients need to keep re-homing as they move. 401 To summarize the H3LISP mobility network layout: 403 (1) Mobility-Clients traffic is tunneled via data-plane ClientXTRs 404 ClientXTRs are (multi) homed to EdgeRTR(s) 405 (2) H3ServiceEID traffic is tunneled via data-plane ServerXTR 406 ServerXTRs are (multi) homed to EdgeRTR(s) 407 (3) EdgeRTRs use mapping service to resolve Ucast HIDs to RTR RLOCs 408 EdgeRTRs also register to (Source, Group) H3ServiceEID multicasts 410 MobilityClients <> ClientXTR EdgeRTR v 411 v 412 v < < < < Map-Assisted Mobility-Network Overlay < < < < v 413 v 414 > > > > EdgeRTR ServerXTR <> H3ServiceEID 416 Figure 5: The Data Flow Between MobilityClients and H3ServiceEIDs 418 5. Mobility Unicast and Multicast 420 Regardless of the way a given ClientXTR was associated with EdgeRTR, 421 an authenticated MobilityClient EID can send: [64bitH3.15ID :: 422 64bitState]annotations to the H3.r9 H3ServiceEID. The H3.r9 EID can 423 be calculated by clients algorithmically from the H3.15 localization. 425 The ClientXTR encapsulates MobilityClient EID and H3ServiceEID from 426 the ClientXTR with the destination of the EdgeRTR RLOC LISP port. 427 EdgeRTRs then re-encapsulate annotation packets either to a remote 428 EdgeRTR (option 1) or to homed H3ServiceEID ServerXTR (option 2). 429 The remote EdgeRTR aggregating H3ServiceEIDs re-encapsulates 430 MobilityClient EID to the ServerXTR, to the H3ServiceEID. 432 The headers consist of the following fields: 434 Outer headers = 40 (IPv6) + 8 (UDP) + 8 (LISP) = 56 435 Inner headers = 40 (IPv6) + 8 (UDP) + 4 (Nexagon Header) = 52 436 1500 (MTU) - 56 - 52 = 1392 bytes of effective payload 438 Nexagon Header Type allows for kv tupples of vkkk flooding 439 Type 0: reserved 440 Type 1:key-value, key-value.. 1392 / (8 + 8) = 87 pairs 441 Type 2:value, key,key,key.. (1392 - 8) / 8 = 173 H3-R15 IDs 442 Type 3-255: unassigned 444 Nexagon Header GZIP field species compression version: 445 0x000 no compression, 0x001 gzip-version-1.0. Other values 446 are unspecified. 448 Nexagon Header Reserved bits 449 Nexagon Header kv count (in any format) 451 0 1 2 3 452 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ 454 |Version| Traffic Class | Flow Label | | 455 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 456 | Payload Length | Next Header | Hop Limit | | 457 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 458 | | | 459 + + | 460 | | | 461 + Source MobilityClientEID + | 462 | | IPv6 463 + + | 464 | | | 465 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 466 | | | 467 + + | 468 | | | 469 + Dest H3ServiceEID + | 470 | | | 471 + + | 472 | | / 473 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 474 | Source Port = xxxx | Dest Port = xxxx | \ 475 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UDP 476 | UDP Length | UDP Checksum | / 477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ 478 | Type |gzip | Reserved | Pair Count = X| Nexgon 479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / 480 | | 481 + 64 Bit H3-R15 ID + 482 | | 483 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 484 | | 485 + 64 Bit State + 486 | | 487 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 488 | | 489 + 64 Bit H3-R15 ID + 490 | | 491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 492 | | 493 + 64 Bit State + 494 | | 495 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 497 Figure 6: Uploaded detections packet format 498 To Summarize Unicast: 500 (1) MobilityClients can send annotations are localized to H3.r15 501 tile. These annotations are sent to H3.r9 mobility H3ServiceEIDs 502 (2) MobilityClient EID and H3ServiceEID HID are encapsulated: 503 XTR <> RTR <> RTR <> XTR 504 * RTRs can map-resolve re-tunnel HIDs 505 (3) RTRs re-encapsulate original source-dest to ServerXTRs 506 ServerXTRs decapsulate packets to H3ServiceEID 508 Each H3.r9 Server is also an IP Multicast Source used to update 509 subscribers on the aggregate state of the H3.r15 tiles in the H3.r9 510 server. This forms a multipoint to multipoint state channel per H3 511 location, where the aggregation has compute-first propagation. 513 We use [RFC8378] signal-free multicast to implement mcast channels in 514 the overlay. The mobility network has many channels, with thousands 515 subscribers per channel. MobilityClients driving through/subscribing 516 to an H3.r9 area can explicitly issue an [RFC4604] MLDv2 in order to 517 subscribe, or, may be subscribed implicitly by the EdgeRTR. 519 The advantage of explicit client MLDv2 registration as [RFC8378] 520 trigger is that clients manage their own mobility mcast handover per 521 location-direction vectors, and that it allows for otherwise silent 522 non annotating clients. The advantage of EdgeRTR implicit registration 523 is that less signaling required. 525 MLDv2 signaling messages are encapsulated between the ClientXTR and 526 EdgeRTR, therefore there is no requirement for the underlying network 527 to support native multicast. If native access multicast is supported 528 then MobilityClient registration to H3ServiceEID safety channels may 529 be integrated with it, in which case mobile packet-core element 530 supporting it will use this standard to register with the 531 appropriate H3.r9 channels in its area. 533 Multicast update packets are of the following structure: 535 0 1 2 3 536 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 537 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ 538 |Version| Traffic Class | Flow Label | | 539 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 540 | Payload Length | Next Header | Hop Limit | | 541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 542 | | | 543 + + | 544 | | | 545 + Source H3-R9 EID Address + | 546 | | IPv6 547 + + | 548 | | | 549 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 550 | | | 551 + + | 552 | | | 553 + Group Address + | 554 | | | 555 + + | 556 | | / 557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 558 | Source Port = xxxx | Dest Port = xxxx | \ 559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ UDP 560 | UDP Length | UDP Checksum | / 561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ 562 | |Nexagon 563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / 564 ~ Nexagons Payload ~ 565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 567 Figure 7: Mcast update packet header 569 0 1 2 3 570 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ 572 | Type = 1 |gzip | Reserved | Pair Count = X|Nexagon 573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / 574 | | 575 + 64 Bit H3-R15 ID + 576 | | 577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 578 | | 579 + 64 Bit State + 580 | | 581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 582 | | 583 + 64 Bit H3-R15 ID + 584 | | 585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 586 | | 587 + 64 Bit State + 588 | | 589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 591 Figure 8: Mcast update payload, key-value, key-value.. 593 0 1 2 3 594 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ 596 | Type = 2 |gzip | Reserved |H3R15 Count = X|Nexagon 597 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / 598 | | 599 + 64 Bit State + 600 | | 601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 602 | | 603 + 64 Bit H3-R15 ID + 604 | | 605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 606 | | 607 + 64 Bit H3-R15 ID + 608 | | 609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 610 | | 611 + 64 Bit H3-R15 ID + 612 | | 613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 615 Figure 9: Mcast update payload, value, key, key.. for larger areas 617 The remote EdgeRTRs homing MobilityClients in turn replicate the 618 packet to the MobilityClients registered with them. 620 We expect an average of 600 H3.r15 tiles of the full 7^6 (~100K) 621 possible in H3.r9 to be part of any road. The H3.r9 server can 622 transmit the status of all 600 or just those with meaningful states 623 based on updated SLA and policy. 625 To Summarize: 627 (1) H3LISP Clients tune to H3.r9 mobility updates using [RFC8378] 628 H3LISP Client issue MLDv2 registration to H3.r9 HIDs 629 ClientXTRs encapsulate MLDv2 to EdgeRTRs who register (s,g). 631 (2) ServerXTRs encapsulate updates to EdgeRTRs who map-resolve (s,g) 632 RLOCs EdgeRTRs replicate mobility update and tunnel to registered 633 EdgeRTRs Remote EdgeRTRs replicate updates to ClientXTRs. 635 6. Security Considerations 637 The nexagon layer3 v2n network is inherently more secure and private 638 then peer to peer alternatives because of the indirection. No car or 639 infrastructure element communicates directly with MobilityClients. 640 All information is conveyed using shared addressable geo-state. 641 MobilityClients receive information only from geospatial channels 642 originating from a trusted broker. MobilityClients have no indication 643 as to the origin of the information. This is an important step towards 644 better privacy, security, extendability, and interoperability compared 645 with legacy layer2 protocols. 647 In order to be able to use the nexagon mobility network for a given 648 period, the mobility clients go through a DNS/AAA stage by which they 649 obtain their clientEID identifiers-credentials and the RLOCs of 650 EdgeRTRs they may use as gateways to the network. This MobilityClient 651 <> EdgeRTR interface is the most sensitive in this network to privacy 652 and security considerations. 654 The traffic on the MobilityClient<>EdgeRTR interface is tunneled, and 655 its UDP content may be encrypted; still, the EdgeRTR will know based 656 on the LISP headers alone the MobilityClient RLOC and H3-R9 (~0.1sqkm) 657 geo-spatial area to which a given client uploads or subscribes to. 659 For this reason we envision the ability of enterprise or groups of 660 users to "bring their own" EdgeRTRs. BYO-RTR masks individual clients' 661 RLOC to H3-R9 association and is pre-provisioned to be able to use the 662 mapping system and be on a white-list of EdgeRTRs aggregating 663 H3ServiceEIDs. If the EdgeRTR functionality is delivered by 5GCore UPF 664 then the only entity which can correlate underlay IP, User, and Geo- 665 location is the regulated carrier, which can do so anyway. 667 Beyond this hop, the mapping system does not hold MobilityClientEIDs, 668 and remote EdgeRTRs are only aware of MobilityClient ephemeral EIDs, 669 not actual RLOC or any other mobile-device identifiers. EdgeRTRs 670 register in the mapping (s,g) H3-R9 multicast groups. Which clients 671 use which EdgeRTR is not in the mapping system, only the AAA server is 672 aware of that. The H3ServiceEIDs themselves decrypt and parse actual 673 H3-R15 annotations; they also consider during this MobilityClientEID 674 credentials to avoid "fake-news", but again these are only temporary 675 EIDs allocated to clients in order to be able to use the mobility 676 network and not for their actual IP. 678 H3Services are provisioned to their EdgeRTRs, in the EdgeRTRs, and 679 optionally also in the mapping system. 681 In summary of main risk mitigations for the lisp-nexagon interface: 683 (1) tapping: all communications are through dynamic tunnels therefore 684 may be encrypted using IP-Sec or other supported point to point 685 underlay standards. These are not static tunnels but LISP re-tunneling 686 routers (RTRs) perform all nexagon Overlay aggregation. 688 (2) spoofing: it is very hard to guess a MobilityClientEID valid for 689 a short period of time. Clients and H3Services EIDs are whitelisted 690 in EdgeRTRs, Clients using the AAA procedure, H3Services via dev-ops. 692 (3) impersonating: efforts to use MobilityClients and H3Services RLOCs 693 should be caught by the underlying service provider edge and access 694 networks. EID impersonating is caught by EdgeRTR EID RLOC whitelist 695 mismatch. 697 (4) credibility: the interface crowd-sources geo-state and does not 698 assume to trust single detections. Credit history track to 699 MobilityClientEIDs by as part of normal H3Services fact checking, 700 aggregate scores affect AAA credentials. 702 (5) privacy: Only EdgeRTRs are aware of both clients' RLOC and 703 geo-location, only AAA is aware of client IDs credentials and credit 704 but not geo-location. Aggregate credit score span all H3Services 705 administratively without source. 707 7. Acknowledgments 709 We would like to kindly thank Joel Halperin for helping structure the 710 AAA section and Geo-Privacy provisions, Luigi Lannone for promoting 711 such LISP Compute First Networking (CFN) use-cases, helping structure 712 the IANA section, and shepherding this draft to completion. 714 8. IANA Considerations 716 This section provides guidance to the Internet Assigned Numbers 717 Authority (IANA) regarding enumeration of road-tile (H3.r15) values. 718 These enumerations are organized as 16 x nibbles = 64bits, a compact 719 bit-mask which aligns with 64bit H3IDs. The 5 last fields 0xB, 0xC, 720 0xD, 0xE remain unassigned for future specification of AV support 721 enumeration such as platoon-join tiles, pull-over tiles, etc. 723 State enum fields of H3 tiles: 725 Field 0x0: Traffic Direction { 726 0x0 - null 727 0x1 - Lane North 728 0x2 - Lane North + 30 729 0x3 - Lane North + 60 730 0x4 - Lane North + 90 731 0x5 - Lane North + 120 732 0x6 - Lane North + 150 733 0x7 - Lane North + 180 734 0x8 - Lane North + 210 735 0x9 - Lane North + 240 736 0xA - Lane North + 270 737 0xB - Lane North + 300 738 0xC - Lane North + 330 739 0xD - junction 740 0xE - shoulder 741 0xF - sidewalk 742 } 743 field 0x1: Persistent or Structural { 744 0x0 - null 745 0x1 - pothole light 746 0x2 - pothole deep 747 0x3 - speed-bump low 748 0x4 - speed-bump high 749 0x5 - icy 750 0x6 - flooded 751 0x7 - snow-cover 752 0x8 - snow-deep 753 0x9 - cone 754 0xA - gravel 755 0xB - choppy 756 0xC - blind-curve 757 0xD - steep-slope 758 0xE - low-bridge 759 0xF - other 760 } 761 field 0x2: Transient Condition { 762 0x0 - null 763 0x1 - pedestrian 764 0x2 - bike scooter 765 0x3 - stopped car / truck 766 0x4 - moving car / truck 767 0x5 - first responder vehicle 768 0x6 - sudden slowdown 769 0x7 - oversized over-height vehicle 770 0x8 - red-light-breach 771 0x9 - light collision (fender bender) 772 Ax - hard collision / casualty 773 0xB - collision course 774 0xC - collision debris 775 0xD - hard brake 776 0xE - sharp corner 777 0xF - freeing-parking 778 } 779 field 0x3: Traffic-light Cycle { 780 0x0 - null 781 0x1 - 1 seconds to green 782 0x2 - 2 seconds to green 783 0x3 - 3 seconds to green 784 0x4 - 4 seconds to green 785 0x5 - 5 seconds to green 786 0x6 - 6 seconds to green 787 0x7 - 7 seconds to green 788 0x8 - 8 seconds to green 789 0x9 - 9 seconds to green 790 0xA - 10 seconds or less 791 0xB - 20 seconds or less 792 0xC - 30 seconds or less 793 0xD - 60 seconds or less 794 0xE - green now 795 0xF - red now 796 } 797 field 0x4: Impacted Tile from Neighboring { 798 0x0 - null 799 0x1 - epicenter 800 0x2 - 2 tiles away 801 0x3 - 3 tiles away 802 0x4 - 4 tiles away 803 0x5 - 5 tiles away 804 0x6 - 6 tiles away 805 0x7 - 7 tiles away 806 0x8 - 8 tiles away 807 0x9 - 9 tiles away 808 0xA - 10 tiles away 809 0xB - 20 tiles away 810 0xC - 30 tiles away 811 0xD - 40 tiles away 812 0xE - 50 tiles away 813 0xF - less than 100 tiles away 814 } 815 field 0x5: Transient, Cycle, Impacted, Valid for Next{ 816 0x0 - null 817 0x1 - 1sec 818 0x2 - 5sec 819 0x3 - 10sec 820 0x4 - 20sec 821 0x5 - 40sec 822 0x6 - 60sec 823 0x7 - 2min 824 0x8 - 3min 825 0x9 - 4min 826 0xA - 5min 827 0xB - 10min 828 0xC - 15min 829 0xD - 30min 830 0xE - 60min 831 0xF - 24hours 832 } 833 field 0x6: LaneRightsSigns { 834 0x0 - null 835 0x1 - yield 836 0x2 - speedLimit 837 0x3 - straightOnly 838 0x4 - noStraight 839 0x5 - rightOnly 840 0x6 - noRight 841 0x7 - rightStraight 842 0x8 - leftOnly 843 0x9 - leftStraight 844 0xA - noLeft 845 0xB - noUTurn 846 0xC - noLeftU 847 0xD - bikeLane 848 0xE - HOVLane 849 0xF - Stop 850 } 851 field 0x7: MovementSigns { 852 0x0 - null 853 0x1 - keepRight 854 0x2 - keepLeft 855 0x3 - stayInLane 856 0x4 - doNotEnter 857 0x5 - noTrucks 858 0x6 - noBikes 859 0x7 - noPeds 860 0x8 - oneWay 861 0x9 - parking 862 0xA - noParking 863 0xB - noStandaing 864 0xC - noPassing 865 0xD - loadingZone 866 0xE - railCross 867 0xF - schoolZone 868 } 869 field 0x8: CurvesIntersectSigns { 870 0x0 - null 871 0x1 - turnsLeft 872 0x2 - turnsRight 873 0x3 - curvesLeft 874 0x4 - curvesRight 875 0x5 - reversesLeft 876 0x6 - reversesRight 877 0x7 - windingRoad 878 0x8 - hairPin 879 0x9 - pretzelTurn 880 0xA - crossRoads 881 0xB - crossT 882 0xC - crossY 883 0xD - circle 884 0xE - laneEnds 885 0xF - roadNarrows 886 } 887 field 0x9: Current Tile Speed { 888 0x0 - null 889 0x1 - < 5kmh 890 0x2 - < 10kmh 891 0x3 - < 15kmh 892 0x4 - < 20kmh 893 0x5 - < 30kmh 894 0x6 - < 40kmh 895 0x7 - < 50kmh 896 0x8 - < 60kmh 897 0x9 - < 80kmh 898 0xA - < 100kmh 899 0xB - < 120kmh 900 0xC - < 140kmh 901 0xD - < 160kmh 902 0xE - > 160kmh 903 0xF - queuedTraffic 904 } 905 field 0xA: Vehicle / Pedestrian Traffic { 906 0x0 - null 907 0x1 - probability of ped/vehicle on tile close to 100% 908 0x2 - 95% 909 0x3 - 90% 910 0x4 - 85% 911 0x5 - 80% 912 0x6 - 70% 913 0x7 - 60% 914 0x8 - 50% 915 0x9 - 40% 916 0xA - 30% 917 0xB - 20% 918 0xC - 15% 919 0xD - 10% 920 0xE - 5% 921 0xF - probability of ped/vehicle on tile close to 0%, empty 922 } 923 filed 0xB - unassigned 924 field 0xC - unassigned 925 field 0xD - unassigned 926 field 0xE - unassigned 927 field 0xF - unassigned 929 Reserved fields and values are for future RFC extensions 930 10. Normative References 932 [I-D.ietf-lisp-rfc6830bis] 933 Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A. 934 Cabellos-Aparicio, "The Locator/ID Separation Protocol 935 (LISP)", draft-ietf-lisp-rfc6830bis-36 (work in progress), 936 September 2020. 938 [RFC8378] Farinacci, D., Moreno, V., "Signal-Free Locator/ID 939 Separation Protocol (LISP) Multicast", RFC8378, 940 DOI 10.17487/RFC8378, May 2018, 941 . 943 [RFC6733] Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn, 944 Ed., "Diameter Base Protocol", RFC 6733, 945 DOI 10.17487/RFC6733, October 2012, 946 . 948 [RFC4604] Holbrook, H. Cain, B. Haberman, B., "Using Internet Group 949 Management Protocol Version 3 (IGMPv3) and Multicast 950 Listener DiscoveryProtocol Version 2 (MLDv2) for 951 Source-Specific Multicast", RFC4604, 952 DOI 10.17487/RFC4604, August 2006, 953 . 955 Authors' Addresses 957 Sharon Barkai 958 Nexar 959 CA 960 USA 962 Email: sbarkai@gmail.com 964 Bruno Fernandez-Ruiz 965 Nexar 966 London 967 UK 969 Email: b@getnexar.com 971 S ZionB 972 Nexar 973 Israel 975 Email: sharon@fermicloud.io 976 Rotem Tamir 977 Nexar 978 Israel 980 rotemtamir@getnexar.com 982 Alberto Rodriguez-Natal 983 Cisco Systems 984 170 Tasman Drive 985 San Jose, CA 986 USA 988 Email: natal@cisco.com 990 Fabio Maino 991 Cisco Systems 992 170 Tasman Drive 993 San Jose, CA 994 USA 996 Email: fmaino@cisco.com 998 Albert Cabellos-Aparicio 999 Technical University of Catalonia 1000 Barcelona 1001 Spain 1003 Email: acabello@ac.upc.edu 1005 Jordi Paillisse-Vilanova 1006 Technical University of Catalonia 1007 Barcelona 1008 Spain 1010 Email: jordip@ac.upc.edu 1012 Dino Farinacci 1013 lispers.net 1014 San Jose, CA 1015 USA 1017 Email: farinacci@gmail.com