1*042d53a7SEvalZero /* Bluetooth Mesh */ 2*042d53a7SEvalZero 3*042d53a7SEvalZero /* 4*042d53a7SEvalZero * Copyright (c) 2017 Intel Corporation 5*042d53a7SEvalZero * 6*042d53a7SEvalZero * SPDX-License-Identifier: Apache-2.0 7*042d53a7SEvalZero */ 8*042d53a7SEvalZero 9*042d53a7SEvalZero #ifndef __FRIEND_H__ 10*042d53a7SEvalZero #define __FRIEND_H__ 11*042d53a7SEvalZero 12*042d53a7SEvalZero #include "mesh/mesh.h" 13*042d53a7SEvalZero 14*042d53a7SEvalZero enum bt_mesh_friend_pdu_type { 15*042d53a7SEvalZero BT_MESH_FRIEND_PDU_SINGLE, 16*042d53a7SEvalZero BT_MESH_FRIEND_PDU_PARTIAL, 17*042d53a7SEvalZero BT_MESH_FRIEND_PDU_COMPLETE, 18*042d53a7SEvalZero }; 19*042d53a7SEvalZero 20*042d53a7SEvalZero bool bt_mesh_friend_match(u16_t net_idx, u16_t addr); 21*042d53a7SEvalZero 22*042d53a7SEvalZero struct bt_mesh_friend *bt_mesh_friend_find(u16_t net_idx, u16_t lpn_addr, 23*042d53a7SEvalZero bool valid, bool established); 24*042d53a7SEvalZero 25*042d53a7SEvalZero void bt_mesh_friend_enqueue_rx(struct bt_mesh_net_rx *rx, 26*042d53a7SEvalZero enum bt_mesh_friend_pdu_type type, 27*042d53a7SEvalZero u64_t *seq_auth, struct os_mbuf *sbuf); 28*042d53a7SEvalZero bool bt_mesh_friend_enqueue_tx(struct bt_mesh_net_tx *tx, 29*042d53a7SEvalZero enum bt_mesh_friend_pdu_type type, 30*042d53a7SEvalZero u64_t *seq_auth, struct os_mbuf *sbuf); 31*042d53a7SEvalZero 32*042d53a7SEvalZero void bt_mesh_friend_clear_incomplete(struct bt_mesh_subnet *sub, u16_t src, 33*042d53a7SEvalZero u16_t dst, u64_t *seq_auth); 34*042d53a7SEvalZero 35*042d53a7SEvalZero void bt_mesh_friend_sec_update(u16_t net_idx); 36*042d53a7SEvalZero 37*042d53a7SEvalZero void bt_mesh_friend_clear_net_idx(u16_t net_idx); 38*042d53a7SEvalZero 39*042d53a7SEvalZero int bt_mesh_friend_poll(struct bt_mesh_net_rx *rx, struct os_mbuf *buf); 40*042d53a7SEvalZero int bt_mesh_friend_req(struct bt_mesh_net_rx *rx, struct os_mbuf *buf); 41*042d53a7SEvalZero int bt_mesh_friend_clear(struct bt_mesh_net_rx *rx, struct os_mbuf *buf); 42*042d53a7SEvalZero int bt_mesh_friend_clear_cfm(struct bt_mesh_net_rx *rx, 43*042d53a7SEvalZero struct os_mbuf *buf); 44*042d53a7SEvalZero int bt_mesh_friend_sub_add(struct bt_mesh_net_rx *rx, 45*042d53a7SEvalZero struct os_mbuf *buf); 46*042d53a7SEvalZero int bt_mesh_friend_sub_rem(struct bt_mesh_net_rx *rx, 47*042d53a7SEvalZero struct os_mbuf *buf); 48*042d53a7SEvalZero 49*042d53a7SEvalZero int bt_mesh_friend_init(void); 50*042d53a7SEvalZero 51*042d53a7SEvalZero #endif 52