Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 1 | /* |
Girish Gowdra | a707e7c | 2019-11-07 11:36:13 +0530 | [diff] [blame] | 2 | * Copyright 2018-present Open Networking Foundation |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 3 | |
Girish Gowdra | a707e7c | 2019-11-07 11:36:13 +0530 | [diff] [blame] | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 7 | |
Girish Gowdra | a707e7c | 2019-11-07 11:36:13 +0530 | [diff] [blame] | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 9 | |
Girish Gowdra | a707e7c | 2019-11-07 11:36:13 +0530 | [diff] [blame] | 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
Thiyagarajan Subramani | 89fffc0 | 2019-05-13 21:33:20 +0000 | [diff] [blame] | 16 | #include <string.h> |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 17 | #include "utils.h" |
| 18 | |
Thiyagarajan Subramani | 89fffc0 | 2019-05-13 21:33:20 +0000 | [diff] [blame] | 19 | std::string serial_number_to_str(bcmolt_serial_number* serial_number) { |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 20 | #define SERIAL_NUMBER_SIZE 12 |
Craig Lutgen | 88a22ad | 2018-10-04 12:30:46 -0500 | [diff] [blame] | 21 | char buff[SERIAL_NUMBER_SIZE+1]; |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 22 | |
| 23 | sprintf(buff, "%c%c%c%c%1X%1X%1X%1X%1X%1X%1X%1X", |
Thiyagarajan Subramani | 89fffc0 | 2019-05-13 21:33:20 +0000 | [diff] [blame] | 24 | serial_number->vendor_id.arr[0], |
| 25 | serial_number->vendor_id.arr[1], |
| 26 | serial_number->vendor_id.arr[2], |
| 27 | serial_number->vendor_id.arr[3], |
| 28 | serial_number->vendor_specific.arr[0]>>4 & 0x0f, |
| 29 | serial_number->vendor_specific.arr[0] & 0x0f, |
| 30 | serial_number->vendor_specific.arr[1]>>4 & 0x0f, |
| 31 | serial_number->vendor_specific.arr[1] & 0x0f, |
| 32 | serial_number->vendor_specific.arr[2]>>4 & 0x0f, |
| 33 | serial_number->vendor_specific.arr[2] & 0x0f, |
| 34 | serial_number->vendor_specific.arr[3]>>4 & 0x0f, |
| 35 | serial_number->vendor_specific.arr[3] & 0x0f); |
Shad Ansari | 01b0e65 | 2018-04-05 21:02:53 +0000 | [diff] [blame] | 36 | |
| 37 | return buff; |
| 38 | } |
Craig Lutgen | 88a22ad | 2018-10-04 12:30:46 -0500 | [diff] [blame] | 39 | |
| 40 | std::string vendor_specific_to_str(char const * const vendor_specific) { |
| 41 | char buff[SERIAL_NUMBER_SIZE+1]; |
| 42 | |
| 43 | sprintf(buff, "%1X%1X%1X%1X%1X%1X%1X%1X", |
| 44 | vendor_specific[0]>>4 & 0x0f, |
| 45 | vendor_specific[0] & 0x0f, |
| 46 | vendor_specific[1]>>4 & 0x0f, |
| 47 | vendor_specific[1] & 0x0f, |
| 48 | vendor_specific[2]>>4 & 0x0f, |
| 49 | vendor_specific[2] & 0x0f, |
| 50 | vendor_specific[3]>>4 & 0x0f, |
| 51 | vendor_specific[3] & 0x0f); |
| 52 | |
| 53 | return buff; |
| 54 | } |
| 55 | |