Making controller compatible with multicast.


Darío César Luzuriaga Sorribes <darioluzuriaga@...>
 

I’m working on a multicast project. It requieres simulation of data flow over an SDN controller. Unfortunately most controller simulators do not support multicast. 
I followed the instructions on https://pymotw.com/2/socket/multicast.html on how to make OpenDayLight controllers able to manage multicast flux. 
While following the procedure over Postman, I found the errors indicated on the bottom. The code used is the same proposed on the link. 
Do you have any idea about how to fix this problem?
Thanks.

Dario. 


CODE:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<group xmlns="urn:opendaylight:flow:inventory">
   <group-type>group-all</group-type>
   <buckets>
       <bucket>
           <action>
               <pop-vlan-action/>
               <order>0</order>
           </action>
           <bucket-id>12</bucket-id>
           <watch_group>14</watch_group>
           <watch_port>1234</watch_port>
       </bucket>
       <bucket>
           <action>
               <set-field>
                   <ipv4-source>100.1.1.1</ipv4-source>
               </set-field>
               <order>0</order>
           </action>
           <action>
               <set-field>
                   <ipv4-destination>200.71.9.5210</ipv4-destination>
               </set-field>
               <order>1</order>
           </action>
           <bucket-id>13</bucket-id>
           <watch_group>14</watch_group>
           <watch_port>1234</watch_port>
       </bucket>
   </buckets>
   <barrier>false</barrier>
   <group-name>Foo</group-name>
   <group-id>1</group-id>
</group>


ERRORS:

{
   "errors": {
       "error": [
           {
               "error-type": "protocol",
               "error-tag": "malformed-message",
               "error-message": "Error parsing input: Supplied value
does not match the regular expression
^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$.
[100.1.1.1]",
               "error-info": "java.lang.IllegalArgumentException:
Supplied value does not match the regular expression
^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$.
[100.1.1.1]\n\tat
com.google.common.base.Preconditions.checkArgument(Preconditions.java:203)\n\tat
org.opendaylight.yangtools.yang.data.impl.codec.CompiledPatternContext.validate(CompiledPatternContext.java:36)\n\tat
org.opendaylight.yangtools.yang.data.impl.codec.StringPatternCheckingCodec.validate(StringPatternCheckingCodec.java:39)\n\tat
org.opendaylight.yangtools.yang.data.impl.codec.StringStringCodec.deserialize(StringStringCodec.java:62)\n\tat
org.opendaylight.yangtools.yang.data.impl.codec.StringStringCodec.deserialize(StringStringCodec.java:26)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.AbstractXmlCodec.parseValue(AbstractXmlCodec.java:36)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.AbstractXmlCodec.parseValue(AbstractXmlCodec.java:21)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.translateValueByType(XmlParserStream.java:453)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.setValue(XmlParserStream.java:435)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:279)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:373)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:373)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:297)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:373)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:297)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:373)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:373)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.read(XmlParserStream.java:297)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.parse(XmlParserStream.java:191)\n\tat
org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream.traverse(XmlParserStream.java:220)\n\tat
org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader.parse(XmlNormalizedNodeBodyReader.java:170)\n\tat
org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader.readFrom(XmlNormalizedNodeBodyReader.java:115)\n\tat
org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader.readFrom(XmlNormalizedNodeBodyReader.java:93)\n\tat
org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader.readFrom(XmlNormalizedNodeBodyReader.java:66)\n\tat
com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:488)\n\tat
com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)\n\tat
com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)\n\tat
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:153)\n\tat
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:203)\n\tat
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)\n\tat
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)\n\tat
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat
com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100)\n\tat
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)\n\tat
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)\n\tat
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)\n\tat
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)\n\tat
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)\n\tat
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)\n\tat
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)\n\tat
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n\tat
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)\n\tat
org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:201)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat
org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:257)\n\tat
org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:220)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat
org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)\n\tat
org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:301)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat
org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:83)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n\tat
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n\tat
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n\tat
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n\tat
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n\tat
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n\tat
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n\tat
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n\tat
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n\tat
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n\tat
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)\n\tat
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n\tat
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n\tat
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)\n\tat
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n\tat
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n\tat
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:72)\n\tat
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)\n\tat
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)\n\tat
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat
org.eclipse.jetty.server.Server.handle(Server.java:499)\n\tat
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)\n\tat
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)\n\tat
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)\n\tat
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat
java.lang.Thread.run(Thread.java:748)\n"
           }
       ]
   }
}

Join z.archive.alto-dev@lists.opendaylight.org to automatically receive all group messages.