Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement osapi-os-net.h #184

Closed
skliper opened this issue Sep 30, 2019 · 8 comments
Closed

implement osapi-os-net.h #184

skliper opened this issue Sep 30, 2019 · 8 comments

Comments

@skliper
Copy link
Contributor

skliper commented Sep 30, 2019

SBN, and other applications, would benefit from an OSAL layer over network interfaces.

Per the CCB action item 29, "Update SBN to use the new OSAL network/socket APIs". But there is no implementation of the osapi-os-net.h interfaces.

@skliper skliper self-assigned this Sep 30, 2019
@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Imported from trac issue 161. Created by cdknight on 2016-03-01T12:24:50, last modified: 2019-07-17T17:01:53

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by cdknight on 2016-03-01 14:02:12:

Some design comments:

  1. Does it make sense to have the SockAddrFromString and SockAddrSetPort, and/or roll those in as parameters of the SockAddrInit function?

  2. Do we need SocketSend and SocketRecv (not requiring the "From/To" addresses, particularly for TCP streams)?

  3. Should the OS_SocketId_t be a struct that wraps the int file descriptor, so that we can validate that the socket is a valid socket? (For example, you can "listen" and "accept" file descriptor 0. Not that it does anything exciting!)

  4. Do we want/need a "select" equivalent or just expect folks to use the OSAL Task threading? I'm guessing platforms that lack threading (or equivalent) will want a select.

  5. I think OSAL should provide a generic suite of endian functions (a-la htons, ntohl, etc.) This would be useful for SBN and DS Replay.

  6. The Unit Tests start servers and clients using standard socket API's...Would it be better to use OSAL functions even in these?

  7. I've only written the POSIX implementation; I do not have access (or experience) with VX Works; I assume I should write "OS_NOT_IMPLEMENTED" stubs for VX Works and others.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jphickey on 2016-05-03 12:17:26:

FYI - there is a full implementation of this in the "posix-ng" OSAL which is part of trac #28.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by cdknight on 2017-01-12 17:35:15:

Regarding item #27), handling multiple socket connections simultaneously requires polling via the select function or using tasks, each of which would block on its relevant socket. The VXWorks documentation for sockets has an example server that uses tasks, and the select API needs to be configured in for VXWorks, so it may be best to not implement select.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jhageman on 2019-03-01 14:16:58:

CCB - Sounds like this has been completed in #28 for POSIX, review if any further action needed (like 6-unit test updates or 7-OS_NOT_IMPLEMENTED stubs) or if this can be closed.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jhageman on 2019-07-08 16:23:32:

Associated [changeset:e9edb69], trac-161-network is likely OBE. Applies to deprecated last-gen.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jhageman on 2019-07-17 12:30:57:

CCB 7/17/2019 - agreed to close as wontfix

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jhageman on 2019-07-17 17:01:53:

wontfix last gen issue, fixed by next gen

@skliper skliper closed this as completed Sep 30, 2019
@skliper skliper removed their assignment Sep 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant