Hi Dario,

I think the document of openflowplugin has some typos. Obviously, "<ipv4-
destination>200.71.9.5210</ipv4-destination>" is not a valid IP address.
And from the YANG model [1], the value of this field should be an IP prefix.

I just tested this API with correct IP prefixes on OpenDaylight Carbon SR1.
It works. I think the related YANG model never changed since Boron release
or even earlier. So it should also work on Nitrogen and Oxygen. Not sure
which release you are using.

Add openflowplugin team and documentation team into this thread.

Hi OpenFlow Plugin team,

Can someone take a look at this issue? I think somebody should update the
document to fix this typo at least. Because the same typo also appears in
the user guide [2], which is a part of the release.

[1]
https://github.com/opendaylight/openflowplugin/blob/master/model/model-flow-base/src/main/yang/opendaylight-match-types.yang#L108
[2]
http://docs.opendaylight.org/en/stable-oxygen/user-guide/openflow-plugin-project-user-guide.html#end-to-end-groups

Best,
Jensen

On Sun, Apr 8, 2018 at 12:29 AM Darío César Luzuriaga Sorribes <
darioluzuri...@gmail.com> wrote:

> Hi, Kai.
> Thanks for your feedback.
> I'm getting the same error with "100.1.1.1/32" and other
> variations.I've been following all the steps from
>
> https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:End_to_End_Groups
> .
> It looks like the previous set ups are okay (in the right directories) as
> well.
> ./karaf
> sudo mn --custom topology.py --topo mytopo
> --controller=remote,ip=192.168.56.101         xterm h1 h3 h5
> Is there's something else for me to do? Otherwise, I'll have to look
> for other alternatives (if any).
> Have a great day.
>
> Dario.
>
>
> On Sat, Apr 7, 2018 at 2:41 AM, Kai GAO <godri...@gmail.com> wrote:
> > Hello Dario,
> >
> > It seems that it's the <ipv4-source>100.1.1.1</ipv4-source> tag. It
> requires
> > an IPv4 prefix (from the regular expression) instead of an IPv4 address.
> >
> > You can try "100.1.1.1/32" instead.
> >
> > Good luck!
> >
> > Best,
> > Kai
> >
> >
> > On Sat, Apr 7, 2018 at 3:20 AM, Darío César Luzuriaga Sorribes
> > <darioluzuri...@gmail.com> wrote:
> >>
> >> 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"
> >>            }
> >>        ]
> >>    }
> >> }
> >>
> >> _______________________________________________
> >> alto-dev mailing list
> >> alto-...@lists.opendaylight.org
> >> https://lists.opendaylight.org/mailman/listinfo/alto-dev
> >>
> >
> >
> >
> > --
> > Kai Gao
> > PhD Candidate at Institute of Network Science and Cyberspace
> > Department of Computer Science and Technology
> > Tsinghua University, Beijing, China
> _______________________________________________
> alto-dev mailing list
> alto-...@lists.opendaylight.org
> https://lists.opendaylight.org/mailman/listinfo/alto-dev
>
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

Reply via email to