blob: b211cfbc2dca04ddbb9e10b5d375690c555289cd [file] [log] [blame]
Shad Ansari01b0e652018-04-05 21:02:53 +00001/*
2 Copyright (C) 2018 Open Networking Foundation
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include <iostream>
Craig Lutgen88a22ad2018-10-04 12:30:46 -050018#include <unistd.h>
Shad Ansari01b0e652018-04-05 21:02:53 +000019
Shad Ansari01b0e652018-04-05 21:02:53 +000020#include "server.h"
Shad Ansarib7b0ced2018-05-11 21:53:32 +000021#include "core.h"
Shad Ansari01b0e652018-04-05 21:02:53 +000022
Shad Ansari01b0e652018-04-05 21:02:53 +000023int main(int argc, char** argv) {
24
Shad Ansari627b5782018-08-13 22:49:32 +000025 Status status = Enable_(argc, argv);
Shad Ansari01b0e652018-04-05 21:02:53 +000026 if (!status.ok()) {
27 std::cout << "ERROR: Enable_ failed - "
28 << status.error_code() << ": " << status.error_message()
29 << std::endl;
30 return 1;
31 }
32
Craig Lutgen88a22ad2018-10-04 12:30:46 -050033 // Wait for successful activation before allowing VOLTHA to connect.
34 // This is necessary to allow the device topology to be dynamically
35 // queried from driver after initialization and activation is complete.
36 int maxTrials = 300;
37 while (!state.is_activated()) {
38 sleep(1);
39 if (--maxTrials == 0) {
40 std::cout << "ERROR: OLT/PON Activation failed" << std::endl;
41 return 1;
42 }
43 }
44
Shad Ansari01b0e652018-04-05 21:02:53 +000045 RunServer();
46
Shad Ansari627b5782018-08-13 22:49:32 +000047 return 0;
Shad Ansari01b0e652018-04-05 21:02:53 +000048}