Loading system/vendor_libs/test_vendor_lib/include/link.h +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ class Link { LE_SCAN_RESPONSE, PAGE, PAGE_RESPONSE, PAGE_REJECT, RESPONSE, SCO, }; Loading system/vendor_libs/test_vendor_lib/model/controller/link_layer_controller.cc +18 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include "packets/link_layer/inquiry_view.h" #include "packets/link_layer/io_capability_view.h" #include "packets/link_layer/le_advertisement_view.h" #include "packets/link_layer/page_reject_view.h" #include "packets/link_layer/page_response_view.h" #include "packets/link_layer/page_view.h" #include "packets/link_layer/response_view.h" Loading Loading @@ -178,6 +179,9 @@ void LinkLayerController::IncomingPacket(LinkLayerPacketView incoming) { IncomingPagePacket(incoming); } break; case Link::PacketType::PAGE_REJECT: IncomingPageRejectPacket(incoming); break; case Link::PacketType::PAGE_RESPONSE: IncomingPageResponsePacket(incoming); break; Loading Loading @@ -568,6 +572,15 @@ void LinkLayerController::IncomingPagePacket(LinkLayerPacketView incoming) { ->ToVector()); } void LinkLayerController::IncomingPageRejectPacket(LinkLayerPacketView incoming) { LOG_INFO(LOG_TAG, "%s: %s", __func__, incoming.GetSourceAddress().ToString().c_str()); PageRejectView reject = PageRejectView::GetPageReject(incoming); LOG_INFO(LOG_TAG, "%s: Sending CreateConnectionComplete", __func__); send_event_(EventPacketBuilder::CreateConnectionCompleteEvent(static_cast<hci::Status>(reject.GetReason()), 0x0eff, incoming.GetSourceAddress(), hci::LinkType::ACL, false) ->ToVector()); } void LinkLayerController::IncomingPageResponsePacket(LinkLayerPacketView incoming) { LOG_INFO(LOG_TAG, "%s: %s", __func__, incoming.GetSourceAddress().ToString().c_str()); uint16_t handle = classic_connections_.CreateConnection(incoming.GetSourceAddress()); Loading Loading @@ -947,6 +960,11 @@ hci::Status LinkLayerController::RejectConnectionRequest(const Address& addr, ui } void LinkLayerController::RejectSlaveConnection(const Address& addr, uint8_t reason) { std::shared_ptr<LinkLayerPacketBuilder> to_send = LinkLayerPacketBuilder::WrapPageReject( PageRejectBuilder::Create(reason), properties_.GetAddress(), addr); LOG_INFO(LOG_TAG, "%s sending page reject to %s", __func__, addr.ToString().c_str()); SendLinkLayerPacket(to_send); CHECK(reason >= 0x0d && reason <= 0x0f); send_event_(EventPacketBuilder::CreateConnectionCompleteEvent(static_cast<hci::Status>(reason), 0xeff, addr, hci::LinkType::ACL, false) Loading system/vendor_libs/test_vendor_lib/model/controller/link_layer_controller.h +1 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ class LinkLayerController { void IncomingLeScanPacket(packets::LinkLayerPacketView packet); void IncomingLeScanResponsePacket(packets::LinkLayerPacketView packet); void IncomingPagePacket(packets::LinkLayerPacketView packet); void IncomingPageRejectPacket(packets::LinkLayerPacketView packet); void IncomingPageResponsePacket(packets::LinkLayerPacketView packet); void IncomingResponsePacket(packets::LinkLayerPacketView packet); Loading system/vendor_libs/test_vendor_lib/packets/link_layer/link_layer_packet_builder.cc +6 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,12 @@ std::shared_ptr<LinkLayerPacketBuilder> LinkLayerPacketBuilder::WrapPage(std::un new LinkLayerPacketBuilder(Link::PacketType::PAGE, std::move(page), source, dest)); } std::shared_ptr<LinkLayerPacketBuilder> LinkLayerPacketBuilder::WrapPageReject( std::unique_ptr<PageRejectBuilder> page_reject, const Address& source, const Address& dest) { return std::shared_ptr<LinkLayerPacketBuilder>( new LinkLayerPacketBuilder(Link::PacketType::PAGE_REJECT, std::move(page_reject), source, dest)); } std::shared_ptr<LinkLayerPacketBuilder> LinkLayerPacketBuilder::WrapPageResponse( std::unique_ptr<PageResponseBuilder> page_response, const Address& source, const Address& dest) { return std::shared_ptr<LinkLayerPacketBuilder>( Loading system/vendor_libs/test_vendor_lib/packets/link_layer/link_layer_packet_builder.h +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include "packets/link_layer/io_capability_negative_response_builder.h" #include "packets/link_layer/le_advertisement_builder.h" #include "packets/link_layer/page_builder.h" #include "packets/link_layer/page_reject_builder.h" #include "packets/link_layer/page_response_builder.h" #include "packets/link_layer/response_builder.h" #include "packets/link_layer/view_forwarder_builder.h" Loading Loading @@ -72,6 +73,8 @@ class LinkLayerPacketBuilder : PacketBuilder<true> { std::unique_ptr<LeAdvertisementBuilder> scan_response, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapPage(std::unique_ptr<PageBuilder> page, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapPageReject(std::unique_ptr<PageRejectBuilder> page_response, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapPageResponse(std::unique_ptr<PageResponseBuilder> page_response, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapResponse(const std::unique_ptr<ResponseBuilder> response, Loading Loading
system/vendor_libs/test_vendor_lib/include/link.h +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ class Link { LE_SCAN_RESPONSE, PAGE, PAGE_RESPONSE, PAGE_REJECT, RESPONSE, SCO, }; Loading
system/vendor_libs/test_vendor_lib/model/controller/link_layer_controller.cc +18 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include "packets/link_layer/inquiry_view.h" #include "packets/link_layer/io_capability_view.h" #include "packets/link_layer/le_advertisement_view.h" #include "packets/link_layer/page_reject_view.h" #include "packets/link_layer/page_response_view.h" #include "packets/link_layer/page_view.h" #include "packets/link_layer/response_view.h" Loading Loading @@ -178,6 +179,9 @@ void LinkLayerController::IncomingPacket(LinkLayerPacketView incoming) { IncomingPagePacket(incoming); } break; case Link::PacketType::PAGE_REJECT: IncomingPageRejectPacket(incoming); break; case Link::PacketType::PAGE_RESPONSE: IncomingPageResponsePacket(incoming); break; Loading Loading @@ -568,6 +572,15 @@ void LinkLayerController::IncomingPagePacket(LinkLayerPacketView incoming) { ->ToVector()); } void LinkLayerController::IncomingPageRejectPacket(LinkLayerPacketView incoming) { LOG_INFO(LOG_TAG, "%s: %s", __func__, incoming.GetSourceAddress().ToString().c_str()); PageRejectView reject = PageRejectView::GetPageReject(incoming); LOG_INFO(LOG_TAG, "%s: Sending CreateConnectionComplete", __func__); send_event_(EventPacketBuilder::CreateConnectionCompleteEvent(static_cast<hci::Status>(reject.GetReason()), 0x0eff, incoming.GetSourceAddress(), hci::LinkType::ACL, false) ->ToVector()); } void LinkLayerController::IncomingPageResponsePacket(LinkLayerPacketView incoming) { LOG_INFO(LOG_TAG, "%s: %s", __func__, incoming.GetSourceAddress().ToString().c_str()); uint16_t handle = classic_connections_.CreateConnection(incoming.GetSourceAddress()); Loading Loading @@ -947,6 +960,11 @@ hci::Status LinkLayerController::RejectConnectionRequest(const Address& addr, ui } void LinkLayerController::RejectSlaveConnection(const Address& addr, uint8_t reason) { std::shared_ptr<LinkLayerPacketBuilder> to_send = LinkLayerPacketBuilder::WrapPageReject( PageRejectBuilder::Create(reason), properties_.GetAddress(), addr); LOG_INFO(LOG_TAG, "%s sending page reject to %s", __func__, addr.ToString().c_str()); SendLinkLayerPacket(to_send); CHECK(reason >= 0x0d && reason <= 0x0f); send_event_(EventPacketBuilder::CreateConnectionCompleteEvent(static_cast<hci::Status>(reason), 0xeff, addr, hci::LinkType::ACL, false) Loading
system/vendor_libs/test_vendor_lib/model/controller/link_layer_controller.h +1 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ class LinkLayerController { void IncomingLeScanPacket(packets::LinkLayerPacketView packet); void IncomingLeScanResponsePacket(packets::LinkLayerPacketView packet); void IncomingPagePacket(packets::LinkLayerPacketView packet); void IncomingPageRejectPacket(packets::LinkLayerPacketView packet); void IncomingPageResponsePacket(packets::LinkLayerPacketView packet); void IncomingResponsePacket(packets::LinkLayerPacketView packet); Loading
system/vendor_libs/test_vendor_lib/packets/link_layer/link_layer_packet_builder.cc +6 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,12 @@ std::shared_ptr<LinkLayerPacketBuilder> LinkLayerPacketBuilder::WrapPage(std::un new LinkLayerPacketBuilder(Link::PacketType::PAGE, std::move(page), source, dest)); } std::shared_ptr<LinkLayerPacketBuilder> LinkLayerPacketBuilder::WrapPageReject( std::unique_ptr<PageRejectBuilder> page_reject, const Address& source, const Address& dest) { return std::shared_ptr<LinkLayerPacketBuilder>( new LinkLayerPacketBuilder(Link::PacketType::PAGE_REJECT, std::move(page_reject), source, dest)); } std::shared_ptr<LinkLayerPacketBuilder> LinkLayerPacketBuilder::WrapPageResponse( std::unique_ptr<PageResponseBuilder> page_response, const Address& source, const Address& dest) { return std::shared_ptr<LinkLayerPacketBuilder>( Loading
system/vendor_libs/test_vendor_lib/packets/link_layer/link_layer_packet_builder.h +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include "packets/link_layer/io_capability_negative_response_builder.h" #include "packets/link_layer/le_advertisement_builder.h" #include "packets/link_layer/page_builder.h" #include "packets/link_layer/page_reject_builder.h" #include "packets/link_layer/page_response_builder.h" #include "packets/link_layer/response_builder.h" #include "packets/link_layer/view_forwarder_builder.h" Loading Loading @@ -72,6 +73,8 @@ class LinkLayerPacketBuilder : PacketBuilder<true> { std::unique_ptr<LeAdvertisementBuilder> scan_response, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapPage(std::unique_ptr<PageBuilder> page, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapPageReject(std::unique_ptr<PageRejectBuilder> page_response, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapPageResponse(std::unique_ptr<PageResponseBuilder> page_response, const Address& source, const Address& dest); static std::shared_ptr<LinkLayerPacketBuilder> WrapResponse(const std::unique_ptr<ResponseBuilder> response, Loading