blob: b9f31ceb56b3b62e6e66b65f18b1f406161c4c97 [file] [log] [blame]
/*
*
* Copyright (c) 2020-2022 Project CHIP Authors
* Copyright (c) 2014-2017 Nest Labs, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file
* This file defines chip vendor identifiers.
*
* Vendor identifiers are assigned and administered by CHIP.
*
*/
#pragma once
#include <cstdint>
namespace chip {
//
// CHIP Vendor Identifiers (16 bits max)
//
// These values are under administration by Connectivity Standards Alliance (CSA).
// For new value allocation make a formal request to CSA.
// The database of currently allocated identifiers can be found in this document:
// https://groups.csa-iot.org/wg/members-all/document/10905
//
// As per specifications (section 2.5.2 Vendor Identifier)
enum VendorId : uint16_t
{
Common = 0x0000u,
Unspecified = 0x0000u,
Apple = 0x1349u,
Google = 0x6006u,
TestVendor1 = 0xFFF1u,
TestVendor2 = 0xFFF2u,
TestVendor3 = 0xFFF3u,
TestVendor4 = 0xFFF4u,
NotSpecified = 0xFFFFu
};
constexpr bool IsTestVendorId(VendorId vid)
{
return (vid >= TestVendor1 && vid <= TestVendor4);
}
constexpr bool IsVendorIdValidOperationally(uint16_t vendorId)
{
return (vendorId != static_cast<uint16_t>(VendorId::Common)) && (vendorId <= static_cast<uint16_t>(VendorId::TestVendor4));
}
constexpr bool IsVendorIdValidOperationally(VendorId vendorId)
{
return IsVendorIdValidOperationally(static_cast<uint16_t>(vendorId));
}
} // namespace chip