-
Notifications
You must be signed in to change notification settings - Fork 587
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
DRAFT - SIP on Netty #19310
DRAFT - SIP on Netty #19310
Conversation
Code analysis and actionsDO NOT DELETE THIS COMMENT.
|
2169774
to
0ee0c0c
Compare
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_WAivsFFfEeysneUx1bJGow Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211129-1504 |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_B5efQFIZEeysneUx1bJGow Target locations of links might be accessible only to IBM employees. |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_9TTVkFLtEeysneUx1bJGow Target locations of links might be accessible only to IBM employees. |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_zmROgFO8EeysneUx1bJGow Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211202-1912 For help analyzing your personal build, go to https://cognitive.hursley.ibm.com/buildAnalysis.html?uuid=_zmROgFO8EeysneUx1bJGow |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_vSvU0FbSEeyWaZwSyDrk3A Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211206-1334 For help analyzing your personal build, go to https://cognitive.hursley.ibm.com/buildAnalysis.html?uuid=_vSvU0FbSEeyWaZwSyDrk3A |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_swoXwFhvEeyWaZwSyDrk3A Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211208-1448 For help analyzing your personal build, go to https://cognitive.hursley.ibm.com/buildAnalysis.html?uuid=_swoXwFhvEeyWaZwSyDrk3A |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_VN_IcF0zEeySV8PQupfSfg Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211214-1619 For help analyzing your personal build, go to https://cognitive.hursley.ibm.com/buildAnalysis.html?uuid=_VN_IcF0zEeySV8PQupfSfg |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_36_aUF30EeySV8PQupfSfg Target locations of links might be accessible only to IBM employees. |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_DTnyQF9wEeySV8PQupfSfg Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211217-1541 For help analyzing your personal build, go to https://cognitive.hursley.ibm.com/buildAnalysis.html?uuid=_DTnyQF9wEeySV8PQupfSfg |
#build #spawn.fullfat.buckets=com.ibm.ws.sipcontainer_fat |
Please code review feature-related files, @OpenLiberty/delivery-approvers |
Your personal build request is at https://wasrtc.hursley.ibm.com:9443/jazz/resource/itemOid/com.ibm.team.build.BuildResult/_PpqDMGHTEeywTM1lnhUXVw Target locations of links might be accessible only to IBM employees. |
The build wtlucy-19310-20211220-1334 For help analyzing your personal build, go to https://cognitive.hursley.ibm.com/buildAnalysis.html?uuid=_PpqDMGHTEeywTM1lnhUXVw |
|
||
_bufferArray[0] = _lengthBuffer; | ||
_bufferArray[1] = requestBuffer; | ||
ByteBuf newBuf = Unpooled.copiedBuffer(_bufferArray); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bill, was there a glitch with the composite buffer below that was solved by using an unpooled copied buffer above?
@@ -166,6 +172,9 @@ protected void modified(Map<String, Object> properties) { | |||
if (c_logger.isTraceDebugEnabled()) | |||
c_logger.traceDebug("SipContainerComponent modified", properties); | |||
PropertiesStore.getInstance().getProperties().updateProperties(properties); | |||
useNetty = MetatypeUtils.parseBoolean( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.
SipResolverService.initialize(dsProps,m_chfw); | ||
|
||
_useNetty = SipContainerComponent.useNetty(); | ||
if (_useNetty) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does '_' prefix mean in this context?
Closing in favor of #24890 |
For #15779
High Level Changes:
WsByteBuffer
replaced for[by]ByteBuf
io.openliberty.netty.NettyFramework
andio.netty.*
APIs*.chfw.*
com/ibm/ws/sip/channel/resolver/dns/impl/Dns.java
->com/ibm/ws/sip/channel/resolver/dns/impl/chfw/Dns.java
*.netty.*
packages, e.g.com/ibm/ws/sip/channel/resolver/dns/impl/netty/Dns.java
<sipContainer useNettyTransport="true/false">
has been added, which toggles between the chfw and netty implementationsNettyFramework.startOutbound()
io.openliberty.netty.internal.tls.impl
NettyTlsProvider
, which provides APIs to build aio.netty.handler.ssl.SslContext
from the active Liberty TLS configs, viacom.ibm.websphere.ssl.JSSEHelper
.SslContext
can then be used to create NettySslHandler
Detailed SIP component changes
DNS resolver (domainResolver)
com.ibm.ws.sip.channel.resolver.dns.impl.netty
andcom.ibm.ws.sip.channel.resolver.impl.netty
com.ibm.ws.sip.channel.resolver.dns.impl.netty
largely containsWsByteBuffer
->ByteBuf
changescom.ibm.ws.sip.channel.resolver.impl.netty
makes outbound TCP and UDP requests viaSipResolverTcpTransport
andSipResolverUdpTransport
NettyFramework
to create their outbound connection bootstraps, and thenNettyFramework.startOutbound()
to start and register the connectionsChannelInitializerWrapper
which sets up their pipelines - in both cases including aSimpleChannelInboundHandler
which is used to pass new data to the correct methodscom.ibm.ws.sip.container.resolver.DomainResolverImpl.getSipURILookup(SipURILookupCallbackImpl, SIPUri)
andcom.ibm.ws.sip.container.resolver.DomainResolverImpl.init()
SIP Endpoint (sipEndpoint)
com.ibm.ws.sip.stack.transport.netty
andcom.ibm.ws.sip.stack.transport.sip.netty
com.ibm.ws.sip.stack.transport
refactored rather than split completely (this might want to be revisited)com.ibm.ws.sip.stack.transport.GenericEndpointImpl
is the@Component
which registers and manages endpointsactivate()
GenericTCPChain
andGenericUDPChain
update()
NettyFramework.create*Bootstrap()
NettyFramework.start()
GenericTCPChain
, and implemented by adding aio.netty.handler.ssl.SslHandler.SslHandler
to the head of theChannelInitializer
pipelineSIP Endpoint (sipEndpoint)
com.ibm.ws.sip.stack.transport.netty
andcom.ibm.ws.sip.stack.transport.sip.netty
com.ibm.ws.sip.stack.transport
refactored rather than split completely (this might want to be revisited)com.ibm.ws.sip.stack.transport.GenericEndpointImpl
is the@Component
which registers and manages endpointsactivate()
GenericTCPChain
andGenericUDPChain
update()
NettyFramework.create*Bootstrap()
NettyFramework.start()
GenericTCPChain
, and implemented by adding aio.netty.handler.ssl.SslHandler.SslHandler
to the head of theChannelInitializer
pipelineSipOutboundConnLink
used for outbound connectionscom.ibm.ws.sip.stack.transaction.transport.SIPConnectionsModel.initSupportedTransports()
Remaining work
com.ibm.ws.sip.stack.transport.sip.netty.SipOutboundConnLink
should be updated to useNettyFramework
APIs to create a bootstrap and connect.