Static Flow Entry 적용 및 기타 질문 입니다.

88 views
Skip to first unread message

민석홍

unread,
May 18, 2015, 8:45:32 PM5/18/15
to open...@googlegroups.com

안녕하세요.

OpenIRIS 를 사용 중에 궁금한 점이 있어 문의 드립니다.



우선 컨트롤러로 OpenIRIS의 사용을 선택하게 된 이유는 DB를 통한 Static Flow Entry의 적용 때문입니다.

이 부분에 대한 저의 이해가 맞는지 우선 궁금합니다.

---> MongGo DB(처음 접해봅니다.) 라는 곳에 ...

---> 이러한 값들의 저장에 대한 명확한 설명(제가 부족하여 몸에 와닿지가 않더라고요...) 이 다소 부족하여 동작을 추정해 보았습니다.

=====> 시스템 초기화 시 DB 접속을 하여 각 튜플에 대한 해당 값들을 메모리에 로딩 후 각 스위치에 포워딩 테이블을 내려준다.

=====> 이때, D-CURL 문을 이용하여 각 스위치에 포워딩 테이블을 내려준다.




질문 0) 저의 이해가 맞는지 궁금합니다.




질문 1) 여기에서, 각 튜플들에 대한 속성을 DB에 저장하는 방법이 D-CURL 이라는 것을 이용할 때 저장되는 것인지요? 아니라면 저장 방법은?

---> (D-CURL 구문을 이용하니 ... 바로 스위치에 적용이 되고, UI 상에도 적용이 됩니다.)




질문 2) DB에 저장 된 값들의 확인은 어떠한 방법을 이용해야 하는지요 ? DB에 로긴 후 검색을 하면 되는 것인지 ?




질문 3) MongGo DB 및 다른 DB (MySQL 등)에 저장되어 있는 값들을 이용하여 제공되는 UI의 탭(home, switches 관련 탭)을 추가 확장하고 싶습니다.

            추가 확장하여 DB 의 Static Flow Entry 를 그대로 뿌리고 싶습니다. 어떠한 방법을 이용해야 할지요 ?

---> (1) MongDB를 이용하는 경우 ?

---> (2) 다른 DB를 이용하는 경우 ?




질문 4) 각 스위치 현황(DPID ...), 토폴로지 정보 등과 같이 컨트롤러가 동작하면서 습득하는 정보들이 어느 곳에 저장되어 주기적으로 업데이트 되는 듯 합니다.

            어느 곳이 어떠한 형식으로 저장이 되는 것인지 궁금합니다. 임시 파일의 형태인지 ?  메모리에 상주하고 있는 것인지 ?






제가 초보라 많이 부족합니다.

감사합니다.

Shin Jisoo

unread,
May 20, 2015, 12:32:48 AM5/20/15
to open...@googlegroups.com

안녕하세요. 질문에 직접 답변드립니다. 

---> MongGo DB(처음 접해봅니다.) 라는 곳에 ...
---> 이러한 값들의 저장에 대한 명확한 설명(제가 부족하여 몸에 와닿지가 않더라고요...) 이 다소 부족하여 동작을 추정해 보았습니다.
=====> 시스템 초기화 시 DB 접속을 하여 각 튜플에 대한 해당 값들을 메모리에 로딩 후 각 스위치에 포워딩 테이블을 내려준다.
=====> 이때, D-CURL 문을 이용하여 각 스위치에 포워딩 테이블을 내려준다.

질문 0) 저의 이해가 맞는지 궁금합니다.

답변: 시스템 초기화 시 DB에 접속하여 해당 포워딩 규칙을 메모리로 자동 로딩합니다.
-->OFMStaticFlowEntryManager.initialize()의 flowEntryStorage.loadFlowModsFromDB();

그러나 각 스위치에 읽어들인 규칙을 자동으로 내리지 않습니다. 이를 다시 스위치에 내리기 위해서는
'Reload' REST API를 사용합니다.

질문 1) 여기에서, 각 튜플들에 대한 속성을 DB에 저장하는 방법이 D-CURL 이라는 것을 이용할 때 저장되는 것인지요? 아니라면 저장 방법은?
---> (D-CURL 구문을 이용하니 ... 바로 스위치에 적용이 되고, UI 상에도 적용이 됩니다.)

답변: D-CURL을 사용해본적은 없습니다. MongoDB가 java 기반이기 때문에 MongoDB에서
제공하는 API를 그대로 사용합니다.
-->OFMStorageManager.insert(...) 등을 참조

질문 2) DB에 저장 된 값들의 확인은 어떠한 방법을 이용해야 하는지요 ? DB에 로긴 후 검색을 하면 되는 것인지 ?
Retrieve API를 이용하시면 DB 내용을 읽어와서 출력합니다. 

질문 3) MongGo DB 및 다른 DB (MySQL 등)에 저장되어 있는 값들을 이용하여 제공되는 UI의 탭(home, switches 관련 탭)을 추가 확장하고 싶습니다.
            추가 확장하여 DB 의 Static Flow Entry 를 그대로 뿌리고 싶습니다. 어떠한 방법을 이용해야 할지요 ?
---> (1) MongDB를 이용하는 경우 ?
---> (2) 다른 DB를 이용하는 경우 ?

답변: UI 탭의 확장은 프로젝트 내의 web/js/controllers/ 아래 xxx.js 자바스크립트 파일을 작성하셔야 하며
web/js/periscope.js를 수정하시어 탭을 추가하셔야 합니다. 
static flow를 뿌리기 위해서는 DB에서 직접 읽어오는 것이 아니라 iris 컨트롤러의 retrieve api를 통해 읽어와야 합니다.
(다른 js 파일을 참고하십시오.)

또한 다른 DB와의 연결은 OFMStorageManager를 전반적으로 수정하시는 것이 바랍직합니다.

질문 4) 각 스위치 현황(DPID ...), 토폴로지 정보 등과 같이 컨트롤러가 동작하면서 습득하는 정보들이 어느 곳에 저장되어 주기적으로 업데이트 되는 듯 합니다.
            어느 곳이 어떠한 형식으로 저장이 되는 것인지 궁금합니다. 임시 파일의 형태인지 ?  메모리에 상주하고 있는 것인지 ?

답변: 네트워크 정보와 관련된 내용은 모두 메모리에 저장합니다.(파일 or DB 저장하지 않습니다.)
또한 네트워크 상태 등의 모든 정보는 주기적으로 스위치에 쿼리하여 얻어온 값을 UI에 출력합니다. 


좋은 하루 보내십시오.


2015년 5월 19일 오전 9:45, 민석홍 <seokho...@gmail.com>님이 작성:

--
You received this message because you are subscribed to the Google Groups "openiris" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openiris+u...@googlegroups.com.
Visit this group at http://groups.google.com/group/openiris.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages