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

Pim ssm #291

Merged
merged 4 commits into from
Mar 31, 2017
Merged

Pim ssm #291

merged 4 commits into from
Mar 31, 2017

Conversation

AnuradhaKaruppiah
Copy link
Contributor

Added support for PIM-SSM multicast group ranges that can co-exist with the ASM group ranges.

SSM groups (232/8 or user configured SSM range) can exist in the same
multicast network as ASM groups. For such groups all RPT related state
machine operations have to be skipped as defined by section 4.8 of
RFC4601 -
1. Source registration is skipped for SSM groups. For SSM groups mroute
is setup on the FHR when a new multicast flow is rxed; however source
registration (i.e. pimreg join) is skipped. This will let the ASIC black
hole the traffic till a valid OIL is added to the mroute.
2. (*,G) IGMP registrations are ignored for SSM groups.

Sample output:
=============
fhr#  sh ip pim group-type
SSM group range : 232.0.0.0/8
fhr#  sh ip pim group-type 232.1.1.1
Group type: SSM
fhr#  sh ip pim group-type 239.1.1.1
Group type: ASM
fhr#

Sample config:
=============
fhr(config)# ip pim ssm prefix-list ssm-ranges
fhr(config)#

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>

Ticket: CM-15344
Testing Done:
1. SSM/ASM source-registration/igmp-joins.
2. On the fly multicast group type changes.
3. pim-smoke.
Interface type has been replaced with the SSM range config. And SSM
groups can now co-exists with ASM groups. I have left the pim ssm
per-interface cli control hidden. It now enables pim-sm with a warning.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>

Ticket: CM-15344
Testing Done: pim-smoke
@donaldsharp
Copy link
Member

Looks good to me, thanks @AnuradhaKaruppiah
@Jafaral could you take a look at this please?

@NetDEF-CI
Copy link
Collaborator

Continous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/

This is a comment from an EXPERIMENTAL automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source and apply patch from patchwork: Successful

Building Stage: Failed

Ubuntu1404 amd64 build: Successful
Debian8 amd64 build: Successful
NetBSD7 amd64 build: Successful
Fedora24 amd64 build: Successful
CentOS7 amd64 build: Successful
Ubuntu1604 amd64 build: Successful
CentOS6 amd64 build: Successful
Ubuntu1204 amd64 build: Successful

FreeBSD10 amd64 build: Failed

Make failed for FreeBSD10 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-387/artifact/CI003BUILD/ErrorLog/log_make.txt)

In file included from ../lib/prefix.h:32:
In file included from /usr/include/netinet/if_ether.h:36:
/usr/include/net/ethernet.h:61:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  ether_dhost[ETHER_ADDR_LEN];
        ^
/usr/include/net/ethernet.h:62:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  ether_shost[ETHER_ADDR_LEN];
        ^
/usr/include/net/ethernet.h:63:2: error: unknown type name 'u_short'; did you mean 'short'?

FreeBSD10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/artifact/CI003BUILD/config.status/config.status

FreeBSD11 amd64 build: Failed

Make failed for FreeBSD11 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-387/artifact/CI009BUILD/ErrorLog/log_make.txt)

In file included from ../lib/prefix.h:32:
In file included from /usr/include/netinet/if_ether.h:36:
/usr/include/net/ethernet.h:61:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  ether_dhost[ETHER_ADDR_LEN];
        ^
/usr/include/net/ethernet.h:62:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  ether_shost[ETHER_ADDR_LEN];
        ^
/usr/include/net/ethernet.h:63:2: error: unknown type name 'u_short'; did you mean 'short'?

FreeBSD11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/artifact/CI009BUILD/config.status/config.status

OmniOS amd64 build: Failed

Make failed for OmniOS amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-387/artifact/CI010BUILD/ErrorLog/log_make.txt)

                 from ../lib/prefix.h:32,
                 from pim_ssm.c:22:
/usr/include/sys/ethernet.h:46:9: error: unknown type name uchar_t
 typedef uchar_t ether_addr_t[ETHERADDRL];
         ^
/usr/include/sys/ethernet.h:61:2: error: unknown type name ushort_t
  ushort_t  ether_type;
  ^
/usr/include/sys/ethernet.h:69:2: error: unknown type name ushort_t

OmniOS amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/artifact/CI010BUILD/config.status/config.status

OpenBSD60 amd64 build: Failed

Make failed for OpenBSD60 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-387/artifact/CI011BUILD/ErrorLog/log_make.txt)

In file included from ../lib/prefix.h:32,
                 from pim_ssm.c:22:
/usr/include/netinet/if_ether.h:66: error: expected specifier-qualifier-list before 'u_int8_t'
/usr/include/netinet/if_ether.h:73: error: expected specifier-qualifier-list before 'u_int8_t'
/usr/include/netinet/if_ether.h:83: error: expected specifier-qualifier-list before 'u_char'
In file included from ../lib/prefix.h:32,
                 from pim_ssm.c:22:
/usr/include/netinet/if_ether.h:124: error: field 'ea_hdr' has incomplete type
/usr/include/netinet/if_ether.h:125: error: expected specifier-qualifier-list before 'u_int8_t'

OpenBSD60 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/artifact/CI011BUILD/config.status/config.status

NetBSD6 amd64 build: Failed

Make failed for NetBSD6 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-387/artifact/CI007BUILD/ErrorLog/log_make.txt)

                 from ../lib/prefix.h:32,
                 from pim_ssm.c:22:
/usr/include/net/if_ether.h:66:2: error: expected specifier-qualifier-list before 'uint8_t'
/usr/include/net/if_ether.h:73:2: error: expected specifier-qualifier-list before 'uint8_t'
/usr/include/net/if_ether.h:76:3: error: conflicting types for '__packed'
/usr/include/net/if_ether.h:67:3: note: previous declaration of '__packed' was here
In file included from /usr/include/netinet/if_ether.h:53:0,
                 from ../lib/prefix.h:32,
                 from pim_ssm.c:22:

NetBSD6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/artifact/CI007BUILD/config.status/config.status

FreeBSD9 amd64 build: Failed

Make failed for FreeBSD9 amd64 build:
(see full make log at /browse/FRR-FRRPULLREQ-387/artifact/CI004BUILD/ErrorLog/log_make.txt)

                 from ../lib/prefix.h:32,
                 from pim_ssm.c:22:
/usr/include/net/ethernet.h:61: error: expected specifier-qualifier-list before 'u_char'
/usr/include/net/ethernet.h:70: error: expected specifier-qualifier-list before 'u_char'
/usr/include/net/ethernet.h:71: error: conflicting types for '__packed'
/usr/include/net/ethernet.h:64: error: previous declaration of '__packed' was here
In file included from /usr/include/netinet/if_ether.h:37,
                 from ../lib/prefix.h:32,
                 from pim_ssm.c:22:

FreeBSD9 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-387/artifact/CI004BUILD/config.status/config.status

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
@NetDEF-CI
Copy link
Collaborator

Continous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-388/

This is a comment from an EXPERIMENTAL automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

@Jafaral
Copy link
Member

Jafaral commented Mar 27, 2017

@donaldsharp, will do.

@Jafaral
Copy link
Member

Jafaral commented Mar 30, 2017

@donaldsharp @AnuradhaKaruppiah

Just to make sure u_char issue on BSD and friends is fixed by including zebra.h to get these type defined, correct? but then that change introduced a conflict because it didn't have the changes from the top of the PR branch. Can you please look at that?

@donaldsharp
Copy link
Member

@Jafaral I can look at it, can we open an issue and assign it to me? I have SPT switchover patches that are dependant on these patches I would like to upstream.

@Jafaral
Copy link
Member

Jafaral commented Mar 30, 2017

@donaldsharp

Ignore my earlier comment about pim_zebra.c conflicting with the top of the PR branch. After a closer inspection it is just out of sync with the master due to 220dbac which we merged a few days ago. So pim_zebra.c just needs to be rebased off current master for this PR.

@AnuradhaKaruppiah I would say just do a rebase and push a new clean PR.

@donaldsharp
Copy link
Member

@Jafaral Conflict handled.

@NetDEF-CI
Copy link
Collaborator

Continous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-409/

This is a comment from an EXPERIMENTAL automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

@Jafaral
Copy link
Member

Jafaral commented Mar 31, 2017

@donaldsharp @AnuradhaKaruppiah

All Good! Thanks.

@Jafaral Jafaral merged commit 2b5c7fa into FRRouting:master Mar 31, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants