본문 바로가기

Networking

(13)
Why is my VxWorks application unable to discover other RTI Data Distribution Service applications after a restart? 결론 : GUID를 재시작할때마다 Unique하게 만들자!! Relevant versions: RTI Data Distribution Service 4.x For dynamic discovery to work properly, RTI Data Distribution Service relies on a "globally unique identifier" (GUID) that uniquely identifies each instance of a participant in the network. By default, RTI Data Distribution Service will automatically choose values for the host ID and app ID that will generate ..
RTI DDS NIC 지정하기 특정 IP를 가지는 NIC에서 RTI DDS를 사용하기 위한 방법이다. Method 2번으로 해결함. [Applies to RTI Data Distribution Service 4.x] On a machine with multiple NICs, you can restrict RTI Data Distribution Service traffic to a subset of the available network interfaces (NICs). For example, this would allow you to segregate DDS traffic from other application-specific data. Selecting specific NICs involves configuring a transp..
Gratuitous ARP 링크 장비 상태에 따라 GW를 동적으로 변경하기 위하여 발행하는 ARP 프로토콜. 자세한 설명은 아래의 링크를 참고한다. http://wiki.wireshark.org/Gratuitous_ARP http://cafe.naver.com/neteg.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=77389 VxWorks로의 구현은 다음 포스트로... 졸립다. =_=
VxWorks에서의 RTI DDS의 Thread 관련 설정 RTI DDS를 Vxworks에서 구동할 때 쓰레드 생성 기본 설정으로 VX_FP_TASK가 빠져있어 해당 Listener에서 실수 연산시 예기치 못한 에러가 발생할 수 있다. 이에 아래의 옵션을 켜주어야 한다. C:\Program Files\RTI\ndds.4.5c\include\ndds\osapi 폴더의 osapi_thread.h 을 열어 아래를 수정한다. /* #define RTI_OSAPI_THREAD_OPTION_DEFAULT 0x00 */ #define RTI_OSAPI_THREAD_OPTION_DEFAULT 0x01 /* modified by Joohyun Lee 2010.11.15 */ 와 같이 수정을 한다. QoS를 설정하는 더 좋은 방법이 있겠지만.. 일단은 이렇게 땜빵을 ㅎ;
인터넷 프로토콜 헤더 출처 : http://nmap.org/book/tcpip-ref.html 프로젝트를 진행하다가 IP/UDP 헤더를 조작해야하는 변태스러운 짓(?!)을 하고 있다. TCP까지 열었으면 까무러칠뻔 ㅎㅎ 이 글은 스프링노트에서 작성되었습니다.
VxWorks6.6에서 RTI DDS 예제 프로그램 빌드 1. 예제 파일 작성 rtiddsgen -language C++ -example ppc604Vx6.6gcc4.1.2 HelloWorld.idl -ppDisable 생성된 예제파일들을 .h와 .cxx 파일들을 DKM 프로젝트로 생성된 폴더에 복사를 하여 사용한다. 2. DKM 프로젝트 생성 및 환경설정 2.1 VxWorks Image Project 생성하여 다음의 설정을 활성화한다. Components C++ components >> standard library >> C++ compiler support routines >> C++ core runtime >> run static initializers 2.2 Downloadable Kernel Module 프로젝트를 생성하여, Build Properti..
초간단 dissector 등록을 위한 과정 아래의 레퍼런스를 참고하였다. http://www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html dissector를 built-in으로 구성할지 plugin으로 구성할지 선택을 할 수가 있으나, 이곳에서는 plugin형식으로 구성하는 방법에 대하여 알아보도록 한다. Example 1) Dissector 초기화 #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #define FOO_PORT 1234 static int proto_foo = -1; void proto_register_foo(void) { proto_foo = proto_register_protocol ( "FOO Protocol", /*..
Custom Dissector 검증을 위한 Python 소스 [length : 4 bytes][type : 1byte][message : length - 1][null] 와 같은 포맷을 같는 프로토콜을 생성하는 파이썬 코드를 만들어서 dissector를 테스트 하였다. AMIN_Server.py from socket import * def AMIN_Server(): svrsock = socket(AF_INET, SOCK_DGRAM) print "haha" svrsock.bind(('', 999)) while True: print "Waiting ..." s, addr = svrsock.recvfrom(1024) print s print addr if __name__ == "__main__": AMIN_Server() AMIN_Client.py import stru..